FULL-STACK WEBSITE (docs/index.html)
- Live circuit analyzer section (#demo): prompt input, model selector,
real-time progress bar with stage indicators, results grid showing
circuit heads table + faithfulness metric bars + grade badge
- Vanilla JS — no build step; falls back to IOI demo data if API down
- Hero "Try live demo" CTA now scrolls to #demo
- 1293 lines total (+400 lines interactive section)
FASTAPI BACKEND (api/main.py)
- CORSMiddleware: project-gu05p.vercel.app + localhost:3000 + wildcard
- WebSocket /ws/{job_id}: streams percent/message/stage every 1s
- Rate limiting middleware: 20 req/min per IP → 429 on excess
- Job progress tracking: percent 0→100 + human-readable messages
- Health endpoint returns version + timestamp
VERCEL ROUTING (vercel.json + api/index.py)
- /api/* rewrites → api/index.py serverless FastAPI function
- One domain for frontend + API — no separate backend needed
CRITICAL BUG FIXES
- mcp/server.py: GlassboxAnalyzer → GlassboxV2 (was ImportError on
every circuit discovery call)
- mcp/server.py: analyze() params corrected (corrupted_prompt →
correct/incorrect; was TypeError on every invocation)
- mcp/server.py: asyncio.to_thread() for all blocking GPU ops —
event loop no longer stalls during TransformerLens inference
- glassbox/core.py: analyze() validates non-empty inputs upfront
- glassbox/core.py: circuit sort + secondary key (layer,head) →
deterministic compliance report ordering across runs
- glassbox/__init__.py: __version__ synced to pyproject.toml
DOCUMENTATION
- CHANGELOG.md: v3.6.0 and v3.5.0 entries added
- README.md: all version refs → 3.6.0, v3.6.0 TOC + section added
- .claude/CLAUDE.md: HF Space URL fixed (affaan/ → designer-coderajay/)
- .claude/CLAUDE.md: website URL corrected to project-gu05p.vercel.app
- pyproject.toml: notify = [] annotated, version 3.6.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>