Skip to content

Releases: tinhct/lux-agent

Release list

v1.3.0

Choose a tag to compare

@tinhct tinhct released this 28 Jun 10:24

LUX Agent v1.3.0

Features & Improvements

Refactoring Backlog Implementation

  • Stateless & Explicit App Construction: Refactored app/core/config.py to move environment variables loading and dotenv resolving inside load_settings(). Created dynamic factory functions create_workflow and create_app in app/agent.py, removing all import-time side-effects and singleton state.
  • Isolated Runtime Replicas: Fixed the runtime cloning boundary in app/agent_runtime_app.py by implementing a real clone() factory that returns a separate, clean instance of AgentEngineApp using the stateless factory.
  • GCS Production Storage Adapter: Implemented GcsAuditRepository inside app/core/persistence.py, enabling safe, concurrency-proof writes directly to Google Cloud Storage (GCS) in production while preserving local JSON for local dev.
  • Transport-Decoupled Middleware: Moved Starlette request stream body rewriting middleware completely out of app/fast_api_app.py to app/core/adapters/pubsub.py, making FastAPI transport purely thin.
  • Dashboard Bootstrap & CORS Hardening: Extracted duplicate metadata/config lookups from frontend/main.py into a new frontend/config.py helper. Restructured CORS posture to use configurable settings allowed origins, dropping the permissive default wildcard *.
  • Toolchain Alignment: Synchronized the static type checker ty Python environment target in pyproject.toml to Python 3.12.
  • Testing Expansion: Added unit tests for the dynamic GCS repository, repository routing factory, and cloned replica isolation, verifying all 32 tests in the suite pass.

v1.2.0

Choose a tag to compare

@tinhct tinhct released this 28 Jun 09:56

LUX Agent v1.2.0

Features & Improvements

Architectural Refactoring & Decompounding

  • Centralized Configuration: Introduced app/core/config.py with an on-demand Settings model, eliminating import-time environment variable branching. Exposes dynamic properties for location routing and MCP detection.
  • Isolated Persistence Adapter: Decoupled database state operations. Replaced direct file reads/writes with the AuditRepository abstraction inside app/core/persistence.py.
  • Monolithic Cleanliness: Decomposed agent.py into isolated modules for validation (app/core/validation.py), security/redaction (app/core/security.py), and tools (app/tools/amazon_brands.py, app/tools/dma_rag.py).
  • Harden HTTP Boundaries: Migrated Starlette request stream body rewrite mutations into a dedicated Pub/Sub payload adapter (app/core/adapters/pubsub.py).
  • Tightened Test Architecture: Disabled global autouse=True mock side-effects in tests/conftest.py. Added unit tests for config, persistence, and pubsub adapter boundaries.