Block a user
Fix analyze_single_patent to download PDF before reading it from disk
chore: fix SMOKE_TEST.md — /triage route should be / (dashboard) and add missing Step 7 triage link
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
Make LLM model configurable via MODEL environment variable
Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py
Add JWT authentication flow tests (registration, login, protected routes, token refresh, admin)
Add rate limiting middleware to auth endpoints to prevent brute-force attacks
Persist async job state in PostgreSQL so jobs survive API restarts
Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation
Move database credentials out of docker-compose.yml into .env file
Make CORS allowed origins configurable via environment variable
Document patent PDF storage volume requirement and add S3/MinIO option
Fix DatabaseClient connection pooling in auth.py
Remove hardcoded database credentials from docker-compose.yml
Make CORS allowed origins configurable via environment variable
Auto-generate TypeScript API client from FastAPI OpenAPI spec
This issue has already been resolved and merged into main via PR #63 and PR #443 (feat: OpenAPI TypeScript client generation). Closing as completed.
Add cursor-based pagination to /analyze/batch and /jobs endpoints
This issue has already been resolved and merged into main via PR #59 (feat: add cursor-based pagination to /jobs endpoint). Closing as completed.
Add patent trend charts to the Analytics page
Add patent trend charts to the Analytics page
This issue has already been resolved and merged into main via PR #62 (feat: add patent trend charts to the Analytics page). Closing as completed.
Add per-analysis multi-model selection (GPT-4o, Gemini, Claude)