Skip to content

Tags: inix-x/headroom

Tags

v0.26.0

Toggle v0.26.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: release main (headroomlabs-ai#931)

🤖 I have created a release *beep* *boop*
---


<details><summary>0.26.0</summary>

##
[0.26.0](headroomlabs-ai/headroom@v0.25.0...v0.26.0)
(2026-06-16)


### Features

* add Copilot BYOK provider wrapper utilities and CLI support
([headroomlabs-ai#1041](headroomlabs-ai#1041))
([e67ee2a](headroomlabs-ai@e67ee2a))
* add dashboard agent usage stats
([headroomlabs-ai#814](headroomlabs-ai#814))
([6d3f39f](headroomlabs-ai@6d3f39f))
* Add support for Mistral Vibe CLI
([headroomlabs-ai#935](headroomlabs-ai#935))
([0932b8b](headroomlabs-ai@0932b8b))
* attribute reread waste to over-compression via marker check
([headroomlabs-ai#901](headroomlabs-ai#901))
([f928576](headroomlabs-ai@f928576))
* **bedrock:** cross-region + Converse compression; bundle proxy binary
in images ([headroomlabs-ai#999](headroomlabs-ai#999))
([0dc2e1c](headroomlabs-ai@0dc2e1c))
* **dashboard:** surface compression-vs-cache net impact in Prefix Cache
panel ([headroomlabs-ai#913](headroomlabs-ai#913))
([2a4d300](headroomlabs-ai@2a4d300))
* **evals:** adversarial-input robustness grid for compressors
([headroomlabs-ai#918](headroomlabs-ai#918))
([5939004](headroomlabs-ai@5939004))
* **parser:** detect re-issued identical tool calls as reread waste
([headroomlabs-ai#909](headroomlabs-ai#909))
([7d4ae86](headroomlabs-ai@7d4ae86))
* **policy:** batch deep edits through one cache-bust
([headroomlabs-ai#856](headroomlabs-ai#856) P3a)
([headroomlabs-ai#1015](headroomlabs-ai#1015))
([c2e52fe](headroomlabs-ai@c2e52fe))
* **policy:** consume net-cost mutation gate in ContentRouter
([headroomlabs-ai#856](headroomlabs-ai#856) P2)
([headroomlabs-ai#905](headroomlabs-ai#905))
([553ade4](headroomlabs-ai@553ade4))
* **proxy:** compress AWS Bedrock InvokeModel requests via configurable
upstream ([headroomlabs-ai#720](headroomlabs-ai#720))
([7edb27a](headroomlabs-ai@7edb27a))


### Bug Fixes

* **anthropic:** strip styled Claude model ids
([headroomlabs-ai#651](headroomlabs-ai#651))
([0c5c89d](headroomlabs-ai@0c5c89d))
* **anyllm:** forward openai api_base/api_key to the any-llm backend
([headroomlabs-ai#942](headroomlabs-ai#942))
([headroomlabs-ai#954](headroomlabs-ai#954))
([a7ee8a6](headroomlabs-ai@a7ee8a6))
* **cache:** guard None exemplar embeddings in dynamic detector
([headroomlabs-ai#950](headroomlabs-ai#950))
([1ec9320](headroomlabs-ai@1ec9320))
* **cache:** name the missing piece in semantic detector guard
([headroomlabs-ai#1018](headroomlabs-ai#1018))
([3b0bcee](headroomlabs-ai@3b0bcee))
* **ci:** check out repo in PR Governance label job
([headroomlabs-ai#1021](headroomlabs-ai#1021))
([4558bc2](headroomlabs-ai@4558bc2))
* **ci:** make PR governance advisory
([headroomlabs-ai#1047](headroomlabs-ai#1047))
([74dff94](headroomlabs-ai@74dff94))
* **codex:** compute waste signals on the OpenAI Responses path
([headroomlabs-ai#898](headroomlabs-ai#898))
([b9e2761](headroomlabs-ai@b9e2761))
* **codex:** poll /wham/usage for subscription limits (handshake no
longer sends x-codex-* headers)
([headroomlabs-ai#924](headroomlabs-ai#924))
([8c00f71](headroomlabs-ai@8c00f71))
* **codex:** PR health label check state
([headroomlabs-ai#986](headroomlabs-ai#986))
([99c874d](headroomlabs-ai@99c874d))
* **codex:** retag thread providers so history menu stays whole across
the proxy boundary
([headroomlabs-ai#1034](headroomlabs-ai#1034))
([74ae781](headroomlabs-ai@74ae781))
* **codex:** write canonical hooks feature flag and migrate deprecated
codex_hooks ([headroomlabs-ai#743](headroomlabs-ai#743))
([dff6a19](headroomlabs-ai@dff6a19))
* **compression:** convert tree-sitter byte offsets to char offsets
([headroomlabs-ai#892](headroomlabs-ai#892))
([b1f700f](headroomlabs-ai@b1f700f))
* **compression:** correct JSON array item counting and entropy gate
([headroomlabs-ai#887](headroomlabs-ai#887))
([d6f0f0f](headroomlabs-ai@d6f0f0f))
* **compression:** keep container bodies compressible in code handler
([headroomlabs-ai#890](headroomlabs-ai#890))
([16ed73b](headroomlabs-ai@16ed73b))
* **compression:** measure short-value threshold on payload, not token
([headroomlabs-ai#889](headroomlabs-ai#889))
([65b0e8c](headroomlabs-ai@65b0e8c))
* **compression:** use thread-local tree-sitter parsers in code handler
([headroomlabs-ai#893](headroomlabs-ai#893))
([6cdb846](headroomlabs-ai@6cdb846))
* **gemini:** surface functionResponse payloads to waste-signal
detection ([headroomlabs-ai#897](headroomlabs-ai#897))
([9b0c840](headroomlabs-ai@9b0c840))
* **learn:** decode directory names with spaces in Windows project paths
([headroomlabs-ai#997](headroomlabs-ai#997))
([headroomlabs-ai#1027](headroomlabs-ai#1027))
([2d3701b](headroomlabs-ai@2d3701b))
* **learn:** scan subagent and workflow transcripts
([headroomlabs-ai#1045](headroomlabs-ai#1045))
([0ddd4ed](headroomlabs-ai@0ddd4ed))
* **openclaw:** declare headroom_retrieve tool contract
([headroomlabs-ai#947](headroomlabs-ai#947))
([7c8c909](headroomlabs-ai@7c8c909))
* **policy:** correct warm-cache penalty in net_mutation_gain to (S +
dT) ([headroomlabs-ai#903](headroomlabs-ai#903))
([0632eba](headroomlabs-ai@0632eba))
* **proxy:** add native Bedrock converse-stream route
([headroomlabs-ai#917](headroomlabs-ai#917))
([b08ec15](headroomlabs-ai@b08ec15))
* **proxy:** keep codex image-generation WS turns alive through the
relay ([headroomlabs-ai#1000](headroomlabs-ai#1000))
([7dbbb40](headroomlabs-ai@7dbbb40))
* **proxy:** make budget enforcement actually work
([headroomlabs-ai#885](headroomlabs-ai#885))
([a14ab45](headroomlabs-ai@a14ab45))
* **proxy:** read RTK gain stats globally by default
([headroomlabs-ai#957](headroomlabs-ai#957))
([b70fccb](headroomlabs-ai@b70fccb))
* route v1internal code assist requests to cloudcode-pa.googleapis…
([headroomlabs-ai#821](headroomlabs-ai#821))
([e20f16b](headroomlabs-ai@e20f16b))
* **serena:** stop the Serena dashboard popup and make --no-serena
actually disable Serena
([headroomlabs-ai#1003](headroomlabs-ai#1003))
([919379a](headroomlabs-ai@919379a))
* support Copilot Business subscription auth
([headroomlabs-ai#641](headroomlabs-ai#641))
([0b4a4bd](headroomlabs-ai@0b4a4bd))
* wire HEADROOM_EXCLUDE_TOOLS / HEADROOM_TOOL_PROFILES into Click proxy
entrypoint ([headroomlabs-ai#943](headroomlabs-ai#943))
([9b7b436](headroomlabs-ai@9b7b436))
* **wrap:** avoid duplicate top-level keys when injecting codex provider
([headroomlabs-ai#884](headroomlabs-ai#884))
([dd22cfd](headroomlabs-ai@dd22cfd))


### Code Refactoring

* DRY cache logic, add thread safety, fix Bash exclusion
([headroomlabs-ai#704](headroomlabs-ai#704))
([e36fccd](headroomlabs-ai@e36fccd))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

v0.25.0

Toggle v0.25.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: release main (headroomlabs-ai#891)

🤖 I have created a release *beep* *boop*
---


<details><summary>0.25.0</summary>

##
[0.25.0](headroomlabs-ai/headroom@v0.24.0...v0.25.0)
(2026-06-12)


### Features

* add differential network capture harness
([headroomlabs-ai#761](headroomlabs-ai#761))
([11ab5f8](headroomlabs-ai@11ab5f8))
* add light mode for dashboard
([headroomlabs-ai#834](headroomlabs-ai#834))
([c425893](headroomlabs-ai@c425893))
* add OAuth2 client-credentials upstream-auth proxy extension
([headroomlabs-ai#778](headroomlabs-ai#778))
([headroomlabs-ai#784](headroomlabs-ai#784))
([eb2e50f](headroomlabs-ai@eb2e50f))
* add Vertex AI proxy routing
([headroomlabs-ai#793](headroomlabs-ai#793))
([3c77e52](headroomlabs-ai@3c77e52))
* **cli:** comprehensive help text, validation, and exception handling
improvements
([headroomlabs-ai#640](headroomlabs-ai#640))
([028efab](headroomlabs-ai@028efab))
* compression safety rails — error-output protection, pipeline circuit
breaker, library inflation guard
([headroomlabs-ai#851](headroomlabs-ai#851))
([c0cadcc](headroomlabs-ai@c0cadcc))
* **dashboard:** per-model savings breakdown and expected-vs-actual cost
on historical charts
([headroomlabs-ai#807](headroomlabs-ai#807))
([34dafe6](headroomlabs-ai@34dafe6))
* detect re-served tool results as over-compression waste signal
([headroomlabs-ai#854](headroomlabs-ai#854))
([5f1d88a](headroomlabs-ai@5f1d88a))
* **evals:** add zero-cost tool schema compaction integrity eval
([headroomlabs-ai#817](headroomlabs-ai#817))
([53a08c6](headroomlabs-ai@53a08c6))
* gated Markdown-KV compaction formatter (serialization-aware output)
([headroomlabs-ai#859](headroomlabs-ai#859))
([06b2625](headroomlabs-ai@06b2625))
* **kompress:** warn on unrecognized HEADROOM_KOMPRESS_BACKEND +
document backend selection
([headroomlabs-ai#204](headroomlabs-ai#204))
([6367d0b](headroomlabs-ai@6367d0b))
* **memory:** add opt-in Apple-GPU (MPS) embedding runtime
([headroomlabs-ai#766](headroomlabs-ai#766))
([c71592d](headroomlabs-ai@c71592d))
* net-cost cache mutation formula on CompressionPolicy
([headroomlabs-ai#856](headroomlabs-ai#856) P1)
([headroomlabs-ai#857](headroomlabs-ai#857))
([d5f5802](headroomlabs-ai@d5f5802))
* **plugins:** Hermes agent headroom_retrieve plugin
([headroomlabs-ai#824](headroomlabs-ai#824))
([058bced](headroomlabs-ai@058bced))
* probe-based retention scoring of recorded compression events
([headroomlabs-ai#862](headroomlabs-ai#862))
([c2106cb](headroomlabs-ai@c2106cb))
* **proxy:** add CLI opt-outs for CCR injection (compression-only mode)
([headroomlabs-ai#823](headroomlabs-ai#823))
([693d9d2](headroomlabs-ai@693d9d2))
* **proxy:** attribute savings history rollups per provider
([headroomlabs-ai#791](headroomlabs-ai#791))
([0b8b8d9](headroomlabs-ai@0b8b8d9))
* **proxy:** log compressed messages alongside original request
([headroomlabs-ai#261](headroomlabs-ai#261))
([2269e40](headroomlabs-ai@2269e40))
* **proxy:** per-project savings breakdown on the dashboard (claude,
codex, aider, copilot, cursor)
([headroomlabs-ai#803](headroomlabs-ai#803))
([914a60a](headroomlabs-ai@914a60a))
* support Python 3.14+ via pyo3 abi3 stable ABI
([headroomlabs-ai#516](headroomlabs-ai#516))
([19eac8e](headroomlabs-ai@19eac8e))
* switch Kompress default to kompress-v2-base with weight-only int8 ONNX
([headroomlabs-ai#799](headroomlabs-ai#799))
([74392b2](headroomlabs-ai@74392b2))
* **transforms:** attribute read_lifecycle + smart_crush tags
([headroomlabs-ai#249](headroomlabs-ai#249))
([8f37426](headroomlabs-ai@8f37426))


### Bug Fixes

* **anthropic:** CCR exception must re-raise, not silently swallow
([headroomlabs-ai#838](headroomlabs-ai#838))
([8db5efc](headroomlabs-ai@8db5efc))
* **ccr:** key Rust search/diff/log markers with explicit_hash
([headroomlabs-ai#852](headroomlabs-ai#852))
([bfcb07d](headroomlabs-ai@bfcb07d))
* **ccr:** make retrieval TTL configurable
([headroomlabs-ai#715](headroomlabs-ai#715))
([2533f77](headroomlabs-ai@2533f77))
* **ccr:** skip CCR when model calls headroom_retrieve alongside user
tools ([headroomlabs-ai#839](headroomlabs-ai#839))
([30078f8](headroomlabs-ai@30078f8))
* **ccr:** use shared compression store
([headroomlabs-ai#875](headroomlabs-ai#875))
([249af6c](headroomlabs-ai@249af6c))
* **ci:** correct comments, timeouts, and pip reliability in native e2e
workflows ([headroomlabs-ai#878](headroomlabs-ai#878))
([b716c8c](headroomlabs-ai@b716c8c))
* **ci:** pin cosign-installer to v3 (v4 does not exist)
([headroomlabs-ai#774](headroomlabs-ai#774))
([199d693](headroomlabs-ai@199d693))
* **codex:** respect CODEX_HOME for wrap config
([headroomlabs-ai#731](headroomlabs-ai#731))
([96abf38](headroomlabs-ai@96abf38))
* **content_router:** guard against empty compression output causing
Anthropic 400
([headroomlabs-ai#771](headroomlabs-ai#771))
([2f9ff07](headroomlabs-ai@2f9ff07))
* **copilot:** use responses API for subscription reasoning models
([headroomlabs-ai#647](headroomlabs-ai#647))
([84ac332](headroomlabs-ai@84ac332))
* correct preserved-entry index mapping in Gemini content round-trip
([headroomlabs-ai#836](headroomlabs-ai#836))
([0ffe2b6](headroomlabs-ai@0ffe2b6))
* **dashboard:** stable 'Proxy $ Saved' hero tile under --workers &gt; 1
([headroomlabs-ai#481](headroomlabs-ai#481))
([fd73b88](headroomlabs-ai@fd73b88))
* don't inject empty tools:[] when client omitted the tools field
([headroomlabs-ai#772](headroomlabs-ai#772))
([574bbae](headroomlabs-ai@574bbae))
* harden Copilot API auth token handling
([headroomlabs-ai#557](headroomlabs-ai#557))
([6b0c09f](headroomlabs-ai@6b0c09f))
* **health:** readyz verifies upstream connectivity, not just process
liveness ([headroomlabs-ai#744](headroomlabs-ai#744))
([5dfb446](headroomlabs-ai@5dfb446))
* **init:** guard persistent task startup
([headroomlabs-ai#616](headroomlabs-ai#616))
([9252d85](headroomlabs-ai@9252d85))
* **init:** normalize Windows hook paths to forward slashes
([headroomlabs-ai#788](headroomlabs-ai#788))
([6ea6e31](headroomlabs-ai@6ea6e31))
* **init:** suppress hook recovery output
([headroomlabs-ai#760](headroomlabs-ai#760))
([b439599](headroomlabs-ai@b439599))
* **learn:** claude-cli streams output with idle timeout
([headroomlabs-ai#373](headroomlabs-ai#373))
([9bff575](headroomlabs-ai@9bff575))
* make headroom wrap readiness probe timeout configurable for slow ML
imports ([headroomlabs-ai#581](headroomlabs-ai#581))
([163677b](headroomlabs-ai@163677b))
* **parser:** detect waste signals in Anthropic tool_result content
blocks ([headroomlabs-ai#815](headroomlabs-ai#815))
([929698a](headroomlabs-ai@929698a))
* **proxy:** F4 — trust X-Forwarded-* only behind allow-listed gateway
([d10bd5f](headroomlabs-ai@d10bd5f))
* **proxy:** lazy-import server to avoid fastapi crash
([headroomlabs-ai#442](headroomlabs-ai#442))
([93c6937](headroomlabs-ai@93c6937))
* **proxy:** make CCR multi-worker warning conditional on backend
([headroomlabs-ai#770](headroomlabs-ai#770))
([d76a729](headroomlabs-ai@d76a729))
* **proxy:** make Kompress eager preload cache-only so a cold cache
can't block startup
([headroomlabs-ai#783](headroomlabs-ai#783))
([841663d](headroomlabs-ai@841663d))
* **proxy:** restore Codex usage headers on WS and streaming SSE
transports ([headroomlabs-ai#577](headroomlabs-ai#577))
([headroomlabs-ai#794](headroomlabs-ai#794))
([0ce68de](headroomlabs-ai@0ce68de))
* schema compaction must not drop property names that match DROP_KEYS
([headroomlabs-ai#785](headroomlabs-ai#785))
([ae2122f](headroomlabs-ai@ae2122f))
* **security:** block DNS-rebinding on /debug/* and /stats/reset via
Host-header allowlist
([headroomlabs-ai#605](headroomlabs-ai#605))
([b4b5025](headroomlabs-ai@b4b5025))
* **ssl:** upstream httpx client inherits SSL_CERT_FILE,
REQUESTS_CA_BUNDLE, NODE_EXTRA_CA_CERTS
([headroomlabs-ai#745](headroomlabs-ai#745))
([e50fbb3](headroomlabs-ai@e50fbb3))
* suppress LiteLLM provider banner before import
([headroomlabs-ai#874](headroomlabs-ai#874))
([f9384ef](headroomlabs-ai@f9384ef))
* **transforms:** use thread-local tree-sitter parsers to prevent pyo3
Unsendable panic
([headroomlabs-ai#604](headroomlabs-ai#604))
([2ad300a](headroomlabs-ai@2ad300a))
* **wrap:** track shared proxy clients with markers
([headroomlabs-ai#877](headroomlabs-ai#877))
([05bd56b](headroomlabs-ai@05bd56b))


### Code Refactoring

* extract litellm model resolution to shared utility
([ec7d006](headroomlabs-ai@ec7d006))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

v0.24.0

Toggle v0.24.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: release main (headroomlabs-ai#607)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

v0.23.0

Toggle v0.23.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#594 from chopratejas/release-pleas…

…e--branches--main

chore: release main

v0.22.4

Toggle v0.22.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: release main

v0.22.3

Toggle v0.22.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#490 from chopratejas/refactor/memo…

…ry-tool-handles

Refactor/memory tool handles

v0.22.2

Toggle v0.22.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#485 from chopratejas/refactor/memo…

…ry-tool-handles

fix(memory): expose memory IDs in auto-tail + memory_list tool + ID-usage guidance

v0.22.1

Toggle v0.22.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#484 from chopratejas/refactor/memo…

…ry-ranker-and-image-decision

refactor(proxy): MemoryRanker + ImageCompressionDecision + branch-aware version-sync

v0.22.0

Toggle v0.22.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#483 from chopratejas/refactor/memo…

…ry-system-uniformity

fix(proxy): MemoryDecision contract + 3 bypass bugs + drop 500-char query cap

v0.21.38

Toggle v0.21.38's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request headroomlabs-ai#475 from chopratejas/fix/wrap-e2e-…

…startup-timeout

fix(tests): widen wrap-e2e openclaw startup timeout to 30s