Already resolved. GET /jobs endpoint supports cursor-based pagination with cursor and limit params. PaginatedJobsResponse includes next_cursor. database.py::list_jobs() handles cursor…
Already resolved. GET /analytics/trends endpoint exists in api.py (line 511). Frontend Analytics page uses recharts (listed in package.json dependencies). PR #62 (commit 730f455). Closing.
Already resolved. SPARC/webhooks.py implements webhook notifications. notify_job_completed() is called from _run_batch_job() in api.py. WEBHOOK_URLS env var documented in .env.example.…
Already resolved. SPARC/scheduler.py implements scheduled analysis with tracked companies. Admin endpoints for tracking companies exist (/admin/tracked). start_scheduler() is called at…
Already resolved. frontend/src/pages/Compare.tsx implements the side-by-side patent portfolio comparison view. PR #61 (commit f0edc5a). Closing.
Already resolved. CSV export at GET /export/{company_name} (api.py line 586) and PDF export at GET /export/{company_name}/pdf (api.py line 638). PR #60 added CSV, PR #171 added PDF. Closing.
Already resolved. PR #57 (commit b66b833) implemented dark mode. tailwind.config.js has darkMode: "class". CSS variables in index.css handle theming. A theme toggle exists in the header with…
Already resolved. CI test job runs ruff check SPARC/ tests/ (line 34) and npx tsc --noEmit (line 48). Both fail the pipeline on errors. ruff.toml exists at repo root. PR #269 (commit…
Already resolved. .gitea/workflows/build.yaml has a test job that runs pytest tests/ -v --tb=short -x (line 59). Build jobs (build-api, build-frontend) depend on test via `needs:…
Already resolved. frontend/package-lock.json exists and is committed. CI uses npm ci (build.yaml line 42) for frozen lockfile installs. Closing.