Closing as already implemented. This work was completed and merged via PR #32 (ci: add pytest and ruff linting to CI) and PR #269 (CI: add tsc --noEmit). Verified that the acceptance criteria are…
Closing as already implemented. This work was completed and merged via PR #32 (ci: add pytest and ruff linting to CI workflow). Verified that the acceptance criteria are met on the current main…
Closing as already implemented. This work was completed and merged via PR #31 (docs: patent PDF storage docs, FileNotFoundError, frontend lockfile). Verified that the acceptance criteria are met…
Closing as already implemented. This work was completed and merged via PR #57 (feat: add dark/light mode toggle with localStorage persistence). Verified that the acceptance criteria are met on the…
Closing as already implemented. This work was completed and merged via PR #56 (feat: add loading skeletons and error retry) and PR #352. Verified that the acceptance criteria are met on the…
Closing as already implemented. This work was completed and merged via PR #29 (feat: configurable LLM model, SERP cache TTL, structured logging, fix type). Verified that the acceptance criteria…
Closing as already implemented. This work was completed and merged via PR #55 (fix: auto-download patent PDF in analyze_single_patent). Verified that the acceptance criteria are met on the current…
Closing as already implemented. This work was completed and merged via PR #31 (docs: patent PDF storage docs) and PR #58 (feat: add S3/MinIO object storage support). Verified that the acceptance…
Closing as already implemented. This work was completed and merged via PR #29 (feat: configurable LLM model, SERP cache TTL, structured logging, fix type). Verified that the acceptance criteria…
Closing as already implemented. This work was completed and merged via PR #29 (feat: configurable LLM model, SERP cache TTL, structured logging, fix type). Verified that the acceptance criteria…