Resolved. PR #59 (feature/cursor-pagination) added cursor-based pagination to the /jobs endpoint. Verified in current main.
Resolved. PR #62 (feature/trend-charts) added patent trend charts to the Analytics page showing filing frequency and category distribution. Verified in current main.
Resolved. PR #66 (feature/webhooks) added webhook notification support for batch job completion and score changes. Verified: SPARC/webhooks.py exists in current main.
Resolved. PR #65 (feature/scheduled-analysis) implemented scheduled/recurring analysis with change alerting. Verified: SPARC/scheduler.py exists in current main.
Resolved. PR #61 (feature/compare-view) added side-by-side patent portfolio comparison view for two companies. Verified in current main.
Resolved. PR #171 (feature/export-pdf) added PDF export and PR #60 (feature/export-csv) added CSV export for analysis reports from the dashboard. Verified in current main.
Resolved. PR #58 (feature/s3-storage) implemented S3/MinIO object storage support for patent PDFs with STORAGE_BACKEND config option. PR #31 also documented the volume mount requirement. Verified:…
Resolved. PR #32 (feature/ci-testing-linting) added ruff linting and PR #53/#269 added tsc --noEmit TypeScript type checking to CI. Verified: .gitea/workflows/test.yaml in current main.
Resolved. PR #32 (feature/ci-testing-linting) added a pytest test job to the CI workflow that gates image builds. Also added ruff linting. Verified: .gitea/workflows/test.yaml exists in current main.
Resolved. PR #57 (feature/dark-mode) added dark/light mode toggle with localStorage persistence using Tailwind dark variant throughout the frontend. Verified dark: classes in frontend source.