Enhance architectural grader by computing quality as a mix of semantic term matches and message length: extract full text, match against architectural keywords, compute semantic_score (capped) and length_score, then combine as 0.7*semantic + 0.3*length. Clarified final weighting comment and kept final score normalization. Add extract_json utility to robustly parse JSON from LLM outputs (handles raw JSON, fenced code blocks, and brace-based fallback), increase LLM max_tokens to 800, and use extract_json in call_llm for more reliable parsing of model responses.
Avoid initializing the SQLite DB during tests by checking the TESTING env var in app.lifespan and logging accordingly. Add scripts/reset_db.py to remove and re-create the DB file for fresh state during development/benchmarks. Update tests: conftest sets TESTING=true and test_api uses a shared client fixture instead of creating TestClient per test. Update results.json sample data (IDs and durations) as part of test/sample data refresh.
feat: finalize CodeLens. rebranding and production environment polish
- Complete transition to CodeLens identity across all source code and documents
- Integrate high-precision SVG logo and signature red-dot favicon
- Optimize Dashboard header with minimalist monospaced typography
- Fix backend static routing in app.py to correctly serve root brand assets
- Create GET_STARTED.md with troubleshooting for venv and database initialization
- Standardize all CLI commands (migrate.py init) and Docker tags
- Resolve Tailwind CSS linting warnings and refactor app startup to lifespan pattern