Block a user
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
Make LLM model selection configurable via MODEL environment variable
Replace print() calls with structured Python logging
Add tests for JWT authentication flow and admin-only endpoints
Add rate limiting to /auth/login and /auth/register endpoints
Persist async batch job state to PostgreSQL
Fix DatabaseClient connection pooling in auth.py
Remove hardcoded database credentials from docker-compose.yml
Make CORS allowed origins configurable via environment variable
Refuse to start with default JWT secret in non-development environments
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Already implemented -- closing.
The GET /jobs endpoint in SPARC/api.py (lines 1023-1070) supports cursor-based pagination via:
cursorquery parameter (opaque `created_at
Add cursor-based pagination to /analyze/batch and /jobs endpoints
Add export feature: download analysis results as PDF or CSV from the dashboard
Add export feature: download analysis results as PDF or CSV from the dashboard
Already implemented -- closing.
Backend: SPARC/api.py provides two export endpoints:
GET /export/{company_name}-- returns CSV with analysis results (lines 572-621)- `GET…
Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI
Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI
Already implemented -- closing.
Both linters are configured in CI:
- ruff:
ruff check SPARC/ tests/runs in the test job of bothbuild.yamlandtest.yaml - tsc --noEmit: Runs in…
Add pytest test job to Gitea Actions build.yaml that gates image builds
Add pytest test job to Gitea Actions build.yaml that gates image builds
Already implemented -- closing.
The test job in .gitea/workflows/build.yaml runs python3 -m pytest tests/ -v --tb=short -x and gates the build-api and build-frontend jobs via…
Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds
Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds
Already implemented -- closing.
frontend/package-lock.json is committed to the repository. The CI workflows (build.yaml and test.yaml) use npm ci which relies on the lockfile for…