Triage: P2 / medium / @devops Part of P2 CI/build batch (#238-#240). Add ruff and tsc --noEmit linting to CI. CI pipeline work -- assign to @devops. Can be done in parallel with #239.
Triage: P2 / medium / @devops Part of P2 CI/build batch (#238-#240). Add pytest job to CI that gates image build. CI pipeline work -- assign to @devops. Depends on #238 being done first.
Triage: P2 / small / @developer Part of P2 CI/build batch (#238-#240). Commit the frontend lockfile for reproducible builds. Should be tackled before #239 and #240 since CI depends on a…
Triage: P2 / medium / @developer Frontend work: add skeleton loaders and error states to Batch and Analytics pages. Standalone UI task, assign to @developer with frontend context.
Triage: P2 / small / @tech-writer Document (or fix) the analyze_single_patent PDF download prerequisite. Primarily a docs/clarity issue -- assign to @tech-writer who can check the code path…
Triage: P2 / small / @developer Part of P2 code-quality batch (#232-#235). Fix Patent.patent_id type annotation from int to str in types.py. One-line fix, batch with #232, #233, #234.
Triage: P2 / small / @developer Part of P2 code-quality batch (#232-#235). Expose SERP cache TTL as SERP_CACHE_TTL_HOURS env var. Batch with #232, #233, #235.
Triage: P2 / small / @developer Part of P2 code-quality batch (#232-#235). Make LLM model configurable via MODEL env var. Small env-var plumbing change, batch with #232, #234, #235.
Triage: P2 / small / @developer Part of P2 code-quality batch (#232-#235). Replace print() with structured logging in analyzer.py, serp_api.py, llm.py. Batch with #233, #234, #235 for a single…
Triage: P1 / medium / @qa-engineer Pure test-authoring work: JWT auth tests for registration, login, protected routes, admin endpoints. Assign to @qa-engineer.
Triage: P1 / small / @developer Add rate limiting middleware (e.g. slowapi) to /auth/login and /auth/register. Standalone change, assign to @developer.
Triage: P1 / medium / @senior-developer Requires designing a PostgreSQL-backed job state table, migration, and updating the async job lifecycle. Multi-file change with architectural implication…
Triage: P1 / small / @developer Part of P1 security hardening batch (#225-#228). Refactor get_db_client() to use a shared pooled DatabaseClient instead of creating a new connection each call.…
Triage: P1 / small / @developer Part of P1 security hardening batch (#225-#228). Move DB creds from docker-compose.yml into a .env file and update docker-compose to reference it. Batch with…
Triage: P1 / small / @developer Part of P1 security hardening batch (#225-#228). Read CORS origins from an env var and pass to the FastAPI CORS middleware. Should be tackled together with…
Triage: P1 / small / @developer Part of P1 security hardening batch (#225-#228). Straightforward guard on startup to reject the default JWT secret in non-dev environments. Assign to @developer…
Triage: P3/medium. End-to-end deployment verification including mobile device testing. Blocked by #73 (CI pipeline must pass first). Assigning to @devops -- requires registry push, Flux…
Triage: P2/small. Straightforward feature -- add state query param to ListPulls handler and a select element to the pulls template, mirroring the existing issues filter. Assigning to @developer.
Triage: P2/large. Multi-repo change spanning Talos IngressRoute config and gitea-mobile auth middleware. Depends on #16 (deployment verified). Recommend @senior-developer -- requires…