Closing as already implemented. Cursor-based pagination is implemented on the /jobs endpoint in api.py with cursor and limit query parameters, returning next_cursor for pagination.
Closing as already implemented. Patent filing trend charts were added to the Analytics page in PR #62 (feat: add patent trend charts to the Analytics page).
Closing as already implemented. Webhook/notification support was added in PR #66 (feat: add webhook notification support for job completion). SPARC/webhooks.py handles webhook delivery.…
Closing as already implemented. Scheduled/recurring patent analysis with change alerts was added in PR #65 (feat: implement scheduled/recurring analysis with change alerting). `SPARC/scheduler.py…
Closing as already implemented. Side-by-side patent portfolio comparison view was added in PR #61 (feat: add side-by-side patent portfolio comparison view).
Closing as already implemented. PDF export was added in PR #171 (feat: add PDF export for analysis reports). CSV export was added in PR #60.
Closing as already implemented. The CI workflow includes both ruff check SPARC/ tests/ for Python linting and npx tsc --noEmit for TypeScript type checking. Added in PR #269.
Closing as already implemented. The CI workflow (.gitea/workflows/) includes a Run pytest step that executes python3 -m pytest tests/ -v --tb=short -x with appropriate environment variables.
Closing as already present. frontend/package-lock.json exists in the repository and is used by npm ci in the CI workflow.
Closing as already implemented. Loading skeletons and error states were added to Batch and Analytics pages in PRs #56 and #352. The Batch page includes loading skeletons, error retry, and empty…