All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Asynchronous RAG Service: Added
buscar_asynctoCorpusLegalwithasyncio.to_threadexecution for non-blocking ChromaDB searches. - Asynchronous Pre-warming: Added
lifespanevent listener inmain.pyto pre-warm the legal corpus vectorstore on startup. - Automated Test Suite: Added E2E & Smoke test suite (
test_e2e_smoke.py), Security & Edge Cases suite (test_edge_cases_security.py), and Performance/Concurrency suite (test_performance.py) reaching 44 passing tests (~92% line coverage). - XSS Protection: Added HTML sanitization (
escapeHtml) inchrome-extension/popup.jsandweb/js/app.js.
- Pydantic V2 Migration: Migrated
backend/app/config.pyfrom Pydantic V1class Config:toSettingsConfigDict(env_file=".env", extra="ignore"). - JSON Serialization: Updated
/analizarroute to dump Pydantic models withmode="json"before storing in SQLAlchemyJSONcolumn. - Regex Performance: Pre-compiled regex patterns (
re.compile) inRiskDetectorandPDFParseron initialization. - ChromaDB Test Isolation: Isolated ChromaDB database path per corpus directory to prevent state collision between test runs.
- Fixed
TypeErrorondatetimeserialization when saving analysis results in SQLite. - Fixed HTTP 500 error on invalid or corrupted PDF uploads by catching PDF parsing errors and returning HTTP 400.
- Fixed risk level casing and accent mismatch (
críticovscritico) inRiskDetector. - Fixed missing dependencies
aiosqlite,pypdf, andpython-multipartinpyproject.tomlandrequirements.txt.