github headroomlabs-ai/headroom v0.41.0
Release v0.41.0

3 hours ago

0.41.0 (2026-10-13)

Features

  • antigravity: add native Google Antigravity IDE integration (#3817) (cd4367b)
  • opencode: support the OpenCode 2.x plugin API (#3999) (1d4b357)
  • plugins: add headroom-snip Claude Code mod that animates compression (#3980) (17abee2)
  • proxy: native spend/savings stats + dashboard for the Rust proxy (#2321) (70b21c1)
  • router: add max_output_tokens condition to ModelRoute (#3898) (01185e3)
  • savings: per-agent attribution in history checkpoints and rollups (#2627) (489de46)
  • show the Headroom for Teams offer in the dashboard, docs, llms.txt and release notes (#3991) (1ad92f0)

Bug Fixes

  • anthropic: route /api/hello connectivity probes to Anthropic (#3336) (#4059) (931e5b9)
  • beacon: stop Cloudflare logging senders' IP addresses (#4018) (db983ba)
  • cache: keep cache mode when Claude Code re-serializes its last reply (#4003) (aeb09f8)
  • cache: retain prefix trackers for the provider cache lifetime (#4023) (9553d42)
  • cache: stop Claude Code forks from cold-starting the conversation's lineage (#4043) (1cf4d05)
  • ccr: serve headroom_retrieve when the model calls it alongside client tools (#4034) (01d9194)
  • cli: name the broken Codex config, write init configs atomically, keep the identity check (#4129) (976aa71)
  • cli: pass configured SSL context to stdlib urlopen calls (#4011) (22d0905)
  • cli: say why the proxy failed to start (#4120) (f3d240b)
  • codex: make unwrap codex remove headroom init routing (#3920) (3260795)
  • codex: preserve auth.json API keys through Headroom (#3355) (a6523b1)
  • copilot: honour GitHub's advertised Business/Enterprise host by default (#4155) (1dc7a18)
  • copilot: send VS Code next-edit requests to the completions host (#4188) (22a1296)
  • dashboard: keep savings profile visible in light mode (#2544) (4e4f49d)
  • dashboard: show the effective value in settings enum selects (#4032) (20ce054)
  • deps: bump quinn-proto to 0.11.19 for RUSTSEC-2026-0338..0342 (#4178) (49751ec)
  • deps: clear the two high npm advisories failing the Security workflow (#4004) (5a516b5)
  • deps: recommend headroom-ai for optional extras (#4046) (f1bc260)
  • deps: support Intel macOS ONNX Runtime resolution (#3823) (51ec6e8)
  • docker: adds mount for the litellm config dir (#2454) (64a661d)
  • gateway: report why /v1/compress/response rejected a body (#4081) (5cac7ab)
  • grok: attribute api.x.ai chat outcomes as provider xai, recognize grok-shell UA (#2626) (b1fb162)
  • install/windows: back persistent-service with an always-on task (#1866) (#2460) (5682883)
  • install: distinguish protocol targets in status (#4040) (79f2c27)
  • install: keep an explicitly empty dashboard allowlist on Windows PowerShell 5.1 (#4012) (c195a12)
  • install: preserve OpenCode edits during reactivation (#4022) (40955b0)
  • learn: decode sanitized pattern-id markers and keep visible-text dedup keys (#3956) (ec1ba70)
  • learn: make live traffic learning use the shared error classifier (#4110) (e6eaa41)
  • learn: pin the learned verbosity level on a cache-mode proxy (#4033) (71663b4)
  • logging: add payload-safe helpers for exceptions, URLs, ids and repeat warnings (#4138) (bebe559)
  • onnx: stop magika's ORT intra-op pool from spinning idle cores (#4189) (2016dc6)
  • openclaw: preserve tool-call thought signatures (#4038) (37f3f9e)
  • plugins/openclaw: keep compression system-prompt notice cache-stable (#3811) (f885187)
  • pricing: reconcile cache billing with model-specific LiteLLM rates (#3033) (463c1a4)
  • providers: drop the shadowed POST /v1/messages route spec (#4075) (69a16cb)
  • proxy/bedrock: record the real upstream status on InvokeModel outcomes (#4025) (159daa2)
  • proxy/streaming: tolerate malformed upstream SSE events (#2558) (d091fbd)
  • proxy: astgrep disk verify truncation (#3192) (1fb4cba)
  • proxy: break the compact-every-turn loop near the real context window (#2942) (76cceeb)
  • proxy: classify failed streams as failed requests (#3747) (42d4f58)
  • proxy: don't retry a 429/529 that cannot succeed within the backoff cap (#3992) (a961a6f)
  • proxy: don't send a memory continuation with unanswered client tool calls (#4009) (#4013) (87e05b6)
  • proxy: forward x-litellm-key-* headers on streaming path (#2532) (33ade5b)
  • proxy: ignore defer_loading when measuring a turn hook's tool delta (#4056) (f8212a3)
  • proxy: keep Claude Haiku 5.5 mid-conversation system messages in place (#4153) (a9eb2a7)
  • proxy: keep leading Anthropic system payloads valid (#3671) (d9e29bb)
  • proxy: log the savings and metrics failures that currently vanish (#4084) (2800932)
  • proxy: read stream cache usage from message_delta; keep Fireworks sessions on one replica (#4174) (30b22df)
  • proxy: record the provider's billed input count on streamed turns (#4052) (a9815bb)
  • proxy: say why proxy.log is missing and why a knob or extension was ignored (#4088) (72302a3)
  • release: synchronize editable uv lock version (#4054) (3f99066)
  • router: bound ML compression per request, not just per block (#3721) (f37980f)
  • router: preserve nested JSON records through compression (#3680) (fd06703)
  • savings,ccr: log the ledger and MCP failures that are swallowed silently (#4105) (97680e7)
  • savings: don't let a thin holdout arm decide the headline number (#3127) (2a12e03)
  • security: resolve 23 open CodeQL alerts (#4045) (a88e2d5)
  • security: resolve high-severity CodeQL alerts (#4005) (dea9092)
  • smart-crusher: preserve wrapped retrieval results in apply (#4149) (9762a14)
  • subscription: log a failed OTEL window update instead of passing silently (#4131) (7d9dd55)
  • toin: make diagnostic pattern identifiers addressable (#4021) (def6d41)
  • transforms: log failed transforms with tracebacks (#3981) (a654558)
  • wrap: carry the shared proxy's extensions over to a dedicated Copilot proxy (#4154) (feea130)
  • wrap: let wrap opencode target a third-party OpenAI-compatible upstream (#3125) (0d7d61d)
  • wrap: reject saved bob gateway URLs the proxy would not route (#3975) (944eafc)
  • wrap: trim the wrap claude startup banner (#3900) (aba75cb)
  • wrap: warn when reused proxy ignores compression settings (#4019) (278bbc8)

Performance Improvements

Code Refactoring

  • backends: reuse the LiteLLM tool converters in the any-llm backend (#4076) (03538f2)
  • cli: one missing-binary error for every wrap command (#4122) (2c2357a)
  • cli: remove test-only and dead helpers from wrap, proxy and mcp (#4118) (73f59a3)
  • compression: deprecate the test-only UniversalCompressor package (#4095) (fc8ff5a)
  • core: remove unreferenced helpers, attributes and a shadowed module (#4091) (08fce18)
  • graph: drop the bespoke codebase-memory-mcp downloader nothing calls (#4102) (30d23fb)
  • mcp_registry: share spec helpers and fold GrokRegistrar onto the Codex TOML registrar (#4121) (6e14ee0)
  • memory,learn,cache: remove unreferenced classes, methods and constants (#4112) (abbf36f)
  • memory: deprecate the never-wired agent memory writers (#4101) (2e497cb)
  • memory: deprecate the orphaned Mem0SystemAdapter (#4114) (7387b8c)
  • memory: drop the unused extraction prompts and tool schemas (#4100) (6d23895)
  • memory: remove the unused memory budget manager (#4099) (e7ac6ca)
  • proxy: delete the unused memory_tool_adapter module (#4071) (7e5d97f)
  • proxy: drop the test-only memory ranker and file-backed native memory ops (#4072) (fc5ac70)
  • proxy: parse HEADROOM_OUTPUT_HOLDOUT in one place (#4082) (1a4e419)
  • proxy: remove dead aliases and wrappers from helpers, body_forwarding, forwarded_headers (#4080) (63cc9af)
  • proxy: remove dead wiring and unused re-exports from server.py (#4073) (58387c1)
  • proxy: remove test-only and dead helpers from the handlers (#4117) (31d378b)
  • proxy: remove the unreachable debug branches from the Responses payload compressor (#4116) (132cd58)
  • proxy: remove the unreachable debug branches from the Responses unit router (#4115) (25cc2d5)
  • proxy: remove unreferenced and test-only helpers (#4074) (e5cbec5)
  • remove test-only compatibility helpers in rollout and agent_savings (#4089) (310c108)
  • remove write-only and test-only code in subscription and install (#4123) (c191bee)
  • transforms: deprecate the unused Python AnchorSelector port (#4104) (9b1971d)
  • transforms: deprecate unused compress_with_stats, extract_batch and align_for_cache (#4098) (e4a1ec1)
  • transforms: drop the Python mirror of the Rust log selector (#4096) (a20c76c)
  • transforms: drop the Python mirror of the Rust search selector (#4103) (47f8710)
  • transforms: remove the unused summarize_dropped_items (#4093) (eaa7308)
  • transforms: remove unused convenience wrappers and helpers (#4097) (5c72d82)

Headroom for Teams: 3 months of Headroom Enterprise free with a 12-month plan. Claim the perk →

Don't miss a new headroom release

NewReleases is sending notifications on new releases.