Block a user
Implement dark mode using Tailwind dark variant across the frontend
Add loading skeleton and error states to Batch and Analytics pages
Fix Patent.patent_id type annotation from int to str in types.py
Fix analyze_single_patent to download PDF before reading from disk
Document patent PDF volume mount requirement and consider object storage for containerized deployments
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
Make LLM model configurable via MODEL environment variable
Replace print() calls in analyzer.py, serp_api.py, and llm.py with structured logging
Add JWT authentication tests covering registration, login, protected routes, and admin endpoints
Add rate limiting to /auth/login and /auth/register endpoints
Persist async job state in PostgreSQL so batch results survive API restarts
Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient
Move database credentials out of docker-compose.yml and into .env
Make CORS allowed origins configurable via environment variable
Refuse to start with default JWT secret in non-development environments
Multi-model support: let users choose LLM provider per analysis and compare outputs
Multi-model support: let users choose LLM provider per analysis and compare outputs
Resolved. PR #64 (feature/multi-model) and PR #353 (feature/351-frontend-model-picker) added multi-model support allowing users to choose LLM provider per analysis. PR #1015 added model allow-list…
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Resolved. PR #63 (feature/openapi-client-gen) and PR #443 (feature/426-generate-ts-api-client) set up auto-generation of the TypeScript API client from the FastAPI OpenAPI spec with CI freshness…
Add cursor-based pagination to /analyze/batch and /jobs endpoints