Block a user
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Add patent filing frequency and technology category trend charts to the Analytics page
Allow users to download analysis results as PDF or CSV from the dashboard
chore: migrate SESSION_SECRET to Sealed Secret in gitea-mobile deployment
feat: add Flux ImagePolicy annotation to gitea-mobile deployment manifest
feat: create Kubernetes manifests for gitea-mobile in Talos repo
Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI pipeline
Add pytest test stage to Gitea Actions workflow to gate image builds
Commit a frontend package lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds
Add loading skeletons and error states to Batch and Analytics pages
chore: migrate SESSION_SECRET to Sealed Secret in gitea-mobile deployment
feat: add Flux ImagePolicy annotation to gitea-mobile deployment manifest
Fix Patent.patent_id type annotation in types.py from int to str
Fix analyze_single_patent to download PDF before reading from disk, or document the prerequisite
feat: create Kubernetes manifests for gitea-mobile in Talos repo
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
Make LLM model selection configurable via MODEL environment variable
Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py
Add test coverage for JWT auth flow: registration, login, protected routes, and admin endpoints
Add rate limiting to /auth/login and /auth/register endpoints