Block a user
Add loading states and error messages to Batch and Analytics pages
Fix Patent.patent_id type annotation from int to str in types.py
Document patent PDF volume mount requirement and path assumptions
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
Make LLM model configurable via MODEL environment variable
Replace print() calls with structured logging in analyzer, serp_api, and llm modules
Add JWT auth integration tests (registration, login, protected routes, admin)
Add rate limiting to /auth/login and /auth/register endpoints
Persist async job state in PostgreSQL instead of in-memory dict
Refactor get_db_client() to use a shared pooled connection
Remove hardcoded database credentials from docker-compose.yml
Make CORS allowed origins configurable via environment variable
Add startup check to reject default JWT secret in production
Multi-model LLM support: let users select provider per analysis
Multi-model LLM support: let users select provider per analysis
Closing: already implemented on main. Frontend Analysis and Batch pages include model pickers with provider information. Backend accepts a model parameter for per-analysis LLM selection.
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Closing: already implemented on main. frontend/package.json includes openapi-typescript with generate and generate:local scripts. CI verifies the generated types are up to date.
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Closing: already implemented on main. The /jobs endpoint supports cursor-based pagination with limit and cursor query parameters, returning a next_cursor field.
Add patent trend charts to the Analytics page