headroomlabs-ai/headroom
57.5
Adequate · 29 July 2026
255.1k
lines of production code
Python
with Rust
2
measurements over time
How this codebase got here
Score
- CAI 57 → 58 (+0.9)
- Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.
Lenses
- Code Health 76 → 76 (+0.2)
- Architecture 100 → 100 (+0.0)
- Maturity 71 → 74 (+3.4)
- Readiness 56 → 58 (+1.7)
- Security 64 → 65 (+1.4)
- Domain Modelling 100 → 100 (+0.0)
- Accessibility 47 → 47 (-0.1)
Resolved (236)
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10–11 lines × 2) (headroom/backends/anyllm.py)
- Duplicated block (10–11 lines × 2) (headroom/learn/plugins/claude.py)
- Duplicated block (10–11 lines × 2) (headroom/learn/plugins/gemini.py)
- Duplicated block (10–11 lines × 2) (headroom/memory/bridge.py)
- Duplicated block (10–11 lines × 2) (headroom/proxy/memory_handler.py)
- Duplicated block (10–11 lines × 2) (headroom/storage/jsonl.py)
- Duplicated block (10–12 lines × 2) (headroom/proxy/handlers/openai.py)
- Duplicated block (10–12 lines × 2) (headroom/proxy/savings_tracker.py)
- Duplicated block (10–16 lines × 2) (headroom/ccr/response_handler.py)
- Duplicated block (10–16 lines × 4) (headroom/backends/anyllm.py)
- Duplicated block (10–17 lines × 2) (headroom/integrations/langchain/chat_model.py)
- Duplicated block (10–19 lines × 2) (headroom/ccr/response_handler.py)
- Duplicated block (11–12 lines × 2) (headroom/providers/anthropic.py)
- Duplicated block (11–12 lines × 2) (headroom/transforms/content_router.py)
- Duplicated block (11–13 lines × 2) (headroom/image/tile_optimizer.py)
- Duplicated block (11–13 lines × 2) (headroom/memory/backends/direct_mem0.py)
- Duplicated block (11–13 lines × 2) (headroom/proxy/handlers/openai.py)
- Duplicated block (11–13 lines × 2) (headroom/telemetry/toin.py)
- Duplicated block (11–14 lines × 2) (headroom/lean_ctx/installer.py)
- …and 216 more
New (279)
- AnyLLMBackend._to_anthropic_response (cyclomatic 16) (headroom/backends/anyllm.py)
- Build action pinned to a mutable branch
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (headroom/backends/anyllm.py)
- Duplicated block (10 lines × 2) (headroom/ccr/response_handler.py)
- Duplicated block (10 lines × 2) (headroom/learn/plugins/claude.py)
- Duplicated block (10 lines × 2) (headroom/memory/bridge.py)
- Duplicated block (10 lines × 2) (headroom/proxy/handlers/openai.py)
- Duplicated block (10 lines × 2) (headroom/proxy/handlers/openai.py)
- Duplicated block (10 lines × 2) (headroom/proxy/memory_handler.py)
- Duplicated block (10 lines × 2) (headroom/proxy/memory_handler.py)
- Duplicated block (10 lines × 2) (headroom/proxy/savings_tracker.py)
- Duplicated block (10 lines × 2) (headroom/storage/jsonl.py)
- Duplicated block (10 lines × 2) (headroom/transforms/kompress_compressor.py)
- Duplicated block (10 lines × 3) (headroom/memory/adapters/embedders.py)
- Duplicated block (11 lines × 2) (headroom/backends/anyllm.py)
- Duplicated block (11 lines × 2) (headroom/cache/base.py)
- Duplicated block (11 lines × 2) (headroom/cli/proxy.py)
- Duplicated block (11 lines × 2) (headroom/integrations/strands/model.py)
- Duplicated block (11 lines × 2) (headroom/lean_ctx/installer.py)
- …and 259 more
Changes since last survey
- 66 commits — 26 feature/other, 40 fixes
By area
- headroom/proxy — 21 commits
- headroom/transforms — 8 commits
- (root) — 5 commits
- headroom/cli — 5 commits
- docs/content — 4 commits
- tests/test_cli — 3 commits
- .github/workflows — 2 commits
- crates/headroom-core — 2 commits
- headroom/learn — 2 commits
- plugins/opencode — 2 commits
- tests/parity — 2 commits
- crates/headroom-parity — 1 commit
- headroom/backends — 1 commit
- headroom/ccr — 1 commit
- headroom/copilot_auth.py — 1 commit
- headroom/dashboard — 1 commit
- headroom/install — 1 commit
- headroom/observability — 1 commit
- headroom/providers — 1 commit
- headroom/testing — 1 commit
Notable commits
- fix: fix(backends): don't crash the OpenAI->Anthropic converter on empty choices (#2484)
- fix: fix(cache): preserve cache_control ttl when re-anchoring a breakpoint (#2651)
- fix: fix(ccr): sliding idle-window TTL with max-lifetime ceiling in the Rust core backends (#2604) (#2631)
- fix: fix(cli): warn when Headroom proxy URL leaks into the shell after unwrap claude (#2238) (#2571)
- fix: fix(codex): detect keyring-backed ChatGPT auth (#2478)
- fix: fix(compression): report source-line span in CCR compression marker (#2597)
- fix: fix(copilot): derive GHE credential host from API URL (#800) (#2511)
- fix: fix(copilot): normalize subscription API routing (#2441) (#2455)
- fix: fix(dashboard): restore lifetime cache-reads tile and per-project setup hints (#2573)
- fix: fix(doctor): don't crash on a valid-but-non-object settings.json (#2482)
- fix: fix(grok): preserve business-seat auth while routing only inference (#2514)
- fix: fix(image): reuse image models instead of rebuilding them per request (#2513) (#2536)
- fix: fix(install): default to cache mode, matching headroom proxy (#1893 follow-up) (#2563)
- fix: fix(install): use CREATE_NO_WINDOW instead of DETACHED_PROCESS on Windows (#2527)
- fix: fix(kompress): match all ONNX backends with startswith, not exact "onnx" (#2448)
- fix: fix(kompress): raise the default execution-slot wait (#2456)
- fix: fix(learn): detect the active OpenCode database (#2587)
- fix: fix(learn): keep traceback tail in tool-error digest preview (#2596)
- fix: fix(learn): treat unreadable candidate paths as absent in project decode (#2446)
- fix: fix(mcp): pin mcp dependency to <2.0.0 to prevent server startup crash (#2642)
- …and 46 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
headroomlabs-ai/headroom was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 29 July 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b3f016b866375cfe2ff8518055ab93844e11ec27 — the exact code this score is about.
- Scored under rubric-2026.08.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.