Block a user
Add loading and error states to Batch and Analytics pages
Document patent PDF storage volume mount requirement and evaluate object storage
Fix Patent.patent_id type annotation from int to str
Fix analyze_single_patent to download PDF before reading from disk
Expose SERP cache TTL as a configurable environment variable
Make LLM model configurable via MODEL environment variable
Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules
Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints
Persist async job state in PostgreSQL to survive API restarts
Add rate limiting to /auth/login and /auth/register endpoints
Refactor get_db_client() to use a shared pooled DatabaseClient
Replace plain-text database credentials in docker-compose.yml with env file or secrets
Make CORS allowed origins configurable via environment variable
Refuse startup with default JWT secret in non-development environments
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Auto-generate TypeScript API client from FastAPI OpenAPI spec
Triage: Already resolved in main.
TypeScript API client auto-generation is fully set up:
openapi-typescript(v7) is a devDependency infrontend/package.jsonnpm run generatefetches…
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Triage: Already resolved in main.
Cursor-based pagination is implemented for the /jobs endpoint in SPARC/api.py (around line 1047):
- Accepts
limitandcursorquery parameters -…
Add side-by-side patent portfolio comparison view
Add side-by-side patent portfolio comparison view
Triage: Already resolved in main.
A full comparison page exists at frontend/src/pages/Compare.tsx (161 lines) with:
- Side-by-side
CompanyPanelcomponents with loading skeletons and error…