Make the /reset endpoint more robust by accepting task_id and seed from either a JSON body or query parameters. ResetRequest.task_id is now optional (defaults to BUG_DETECTION). The endpoint resolves final values with precedence: default < body < query, then calls env.reset(final_task_id, final_seed). Added fastapi Body import, an info log on reset, and a test (test_api_reset_robustness) that verifies no-body, empty-body, query-only, and query-overrides-body behavior.
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
test: expand test suite to 150+ tests and 80%+ coverage
- Added 30 parametrized scenario validation tests (97 total cases)
- Implemented shared fixtures in conftest.py with in-memory DB override
- Added persistence layer tests for SQLite and leaderboard logic
- Expanded grader tests with edge cases for line tolerance and penalties
- Added API error path and pagination tests
- Fixed logic bug in SecurityGrader keyword thresholding
- Configured pytest-cov with 80% coverage enforcement
feat: add SQLite persistence for episodes, results, and leaderboard via SQLModel