Triage: Already Resolved
Tailwind dark mode is configured in frontend/tailwind.config.js with darkMode: 'class' (line 7). Theme-aware colors are defined including dark variants. Chart…
Triage: Already Resolved
Patent PDF storage volume mount is documented. The docker-compose.yml includes a patent_data volume mounted to /app/patents. Documentation exists in `docs/DEPLOYM…
Triage: Already Resolved
The frontend/package-lock.json file is committed and tracked in git. It is used by npm ci in the CI pipeline for reproducible builds.
Closing as resolved.
Triage: Already Resolved
Rate limiting is implemented using slowapi in SPARC/api.py (lines 14-16). The Limiter is configured and applied to auth endpoints. Tests exist in `tests/test_rate…
Triage: Already Resolved
Comprehensive JWT flow tests exist in tests/test_auth.py (302 lines) covering registration, login, protected routes, token refresh, and admin endpoints. Security…
Triage: Already Resolved
Async job state is persisted in PostgreSQL. The jobs table is created in SPARC/database.py (line 175: CREATE TABLE IF NOT EXISTS jobs). The API endpoints…
Triage: Already Resolved
No print() calls remain in SPARC/analyzer.py, SPARC/serp_api.py, or SPARC/llm.py. All three files use structured logging via the logging module (logger…
Triage: Already Resolved
The MODEL environment variable is read in SPARC/config.py (line 43): model = os.getenv('MODEL', 'anthropic/claude-3.5-sonnet'). It is documented in .env.example…
Triage: Already Resolved
The SERP_CACHE_TTL_HOURS environment variable is read in SPARC/config.py (line 46): serp_cache_ttl_hours = int(os.getenv('SERP_CACHE_TTL_HOURS', '24')). It is…
Triage: Already Resolved
The get_db_client() function in SPARC/auth.py (line 168) returns a module-level singleton DatabaseClient that uses ThreadedConnectionPool from psycopg2…