Resolved -- already implemented in the codebase.
No print() calls remain in any SPARC/*.py files. All modules use Python's logging module with logger = logging.getLogger(__name__).…
Resolved -- already implemented in the codebase.
config.py already reads the MODEL env variable: model = os.getenv('MODEL', 'anthropic/claude-3.5-sonnet'). The LLM analyzer and API…
Resolved -- already implemented in the codebase.
config.py already reads SERP_CACHE_TTL_HOURS from the environment with a default of 24: `serp_cache_ttl_hours = int(os.getenv('SERP_CACHE_TTL…
Triage Update (2026-03-30)
Status: Blocked (as labeled).
Depends on #16 (base deployment verified). This is a large feature (Authentik SSO integration) that requires both code changes in…
Triage Update (2026-03-30)
Status: Blocked, needs human (as labeled).
Requires a physical iPhone to validate PWA behavior. Cannot be done by agents. Blocked until app is deployed and #158…
Triage Update (2026-03-30)
Status: Blocked, needs human (as labeled).
Depends on #161 (act_runner deployment) which itself needs human involvement. No action possible.
Assignment:…
Resolved -- already implemented in the codebase.
api.py uses slowapi's @limiter.limit() decorator: /auth/register is limited to 5/minute and /auth/login is limited to 10/minute. The…
Triage Update (2026-03-30)
Status: Blocked, needs human (as labeled).
This requires SealedSecret setup and runner registration token from the Gitea admin panel. The K8s manifests should…
Resolved -- already implemented in the codebase.
database.py has create_job(), update_job(), get_job(), and mark_stale_jobs_failed() methods. api.py uses these database-backed methods…
Resolved -- already implemented in the codebase.
auth.py's get_db_client() returns a module-level singleton DatabaseClient. DatabaseClient in database.py uses `psycopg2.pool.ThreadedConnecti…
Triage Update (2026-03-30)
Status: Blocked (as labeled).
Depends on #165 (IngressRoute verified). The entire chain is blocked by #167 (pod running). No action possible until deployment is…
Resolved -- already implemented in the codebase.
auth.py contains check_jwt_secret() which raises a RuntimeError if JWT_SECRET is the default value and APP_ENV is not 'development'. api.py…
Resolved -- already implemented in the codebase.
config.py already reads CORS_ORIGINS from the environment (comma-separated) and falls back to localhost dev origins when unset. The api.py…