Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.85 KB

File metadata and controls

26 lines (20 loc) · 1.85 KB

Changelog

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.

[0.2.0] - 2026-08-04

Added

  • Asynchronous RAG Service: Added buscar_async to CorpusLegal with asyncio.to_thread execution for non-blocking ChromaDB searches.
  • Asynchronous Pre-warming: Added lifespan event listener in main.py to 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) in chrome-extension/popup.js and web/js/app.js.

Changed

  • Pydantic V2 Migration: Migrated backend/app/config.py from Pydantic V1 class Config: to SettingsConfigDict(env_file=".env", extra="ignore").
  • JSON Serialization: Updated /analizar route to dump Pydantic models with mode="json" before storing in SQLAlchemy JSON column.
  • Regex Performance: Pre-compiled regex patterns (re.compile) in RiskDetector and PDFParser on initialization.
  • ChromaDB Test Isolation: Isolated ChromaDB database path per corpus directory to prevent state collision between test runs.

Fixed

  • Fixed TypeError on datetime serialization 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ítico vs critico) in RiskDetector.
  • Fixed missing dependencies aiosqlite, pypdf, and python-multipart in pyproject.toml and requirements.txt.