Spaces:
Sleeping
Sleeping
Commit History
-
feat: Harden API, pin dependencies, and enable pytest CI gate
- /health/deep: 1-token ping per configured LLM provider (key presence no longer masquerades as a working model) - Abuse guards on POST /analyze: per-IP rate limit (10/h), concurrent workflow cap (3), and 1h TTL eviction for the in-memory store - CORS: hf.space subdomains via allow_origin_regex (literal wildcard was a no-op); drop unused allow_credentials - Lifespan handler replaces deprecated @app.on_event startup hook - Cache-Control: immutable for hashed /assets, no-cache for the shell - Dependencies: requirements.in + uv-compiled fully pinned requirements.txt (captures the exact resolution validated by today's live canary); Dockerfile uses npm ci for the frontend - Tests: replace live-integration test (needed API keys, imported deleted graph_cyclic) with unit tests for loop routing; pytest added to CIe926e7e -
ci: Add CI, HF Space auto-mirror, and weekly live canary workflows
- ci.yml: flake8 critical errors + import smoke (backend), npm ci + build with non-blocking lint (frontend); existing tests are live integration tests requiring API keys, so they are not a CI gate yet - deploy-hf.yml: mirror main to the HF Space on every push via HF_TOKEN - canary.yml: weekly health checks (keeps free-tier Spaces awake) plus a full end-to-end analysis asserting LLM provider, SWOT sections, and data-source coverage — catches silent model/API rot2407b4d