Block a user
Commit a frontend lockfile to ensure reproducible builds
Add loading skeletons 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 attempting to read it from disk
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, serp_api, and llm modules
Add JWT authentication tests covering full token lifecycle
feat: verify CI pipeline produces a passing build after workflow fixes
feat: verify CI pipeline produces a passing build after workflow fixes
Closing as done. CI runs 2 through 17 all show completed status. The pipeline has been building and pushing images successfully across every merge to master since the workflow fixes in #20 and…
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() to use a shared connection pool instead of creating a new client per call
Move database credentials out of docker-compose.yml into .env
Make CORS allowed origins configurable via environment variable
Refuse startup with default JWT secret in non-dev environments
Add PDF export for analysis reports (CSV already implemented)
Resolved by PR #171 (feat: add PDF export for analysis reports). The PR has been reviewed and merged to main. Closing.
feat: add PDF export for analysis reports
Add PDF export for analysis reports (CSV already implemented)