Skip to content

Commit b88b907

Browse files
chore: release 0.36.0 (headroomlabs-ai#3067)
🤖 I have created a release *beep* *boop* --- ## [0.36.0](headroomlabs-ai/headroom@v0.35.0...v0.36.0) (2026-08-20) ### Features * add deterministic runtime rollout controls ([headroomlabs-ai#1490](headroomlabs-ai#1490)) ([3077ac8](headroomlabs-ai@3077ac8)) * **proxy:** let extensions report cost savings and their own latency ([headroomlabs-ai#3051](headroomlabs-ai#3051)) ([f9807fd](headroomlabs-ai@f9807fd)) * **proxy:** unify savings attribution across stats, perf, metrics, and dashboard ([1b0b0b8](headroomlabs-ai@1b0b0b8)), closes [headroomlabs-ai#2976](headroomlabs-ai#2976) * **wrap/claude:** make the --1m fallback model configurable via HEADROOM_1M_MODEL ([headroomlabs-ai#2983](headroomlabs-ai#2983)) ([2a84725](headroomlabs-ai@2a84725)) ### Bug Fixes * **anthropic:** honor the [1m] 1M-context tier, and price it correctly ([headroomlabs-ai#3073](headroomlabs-ai#3073)) ([6d2254d](headroomlabs-ai@6d2254d)) * **ccr:** make --no-ccr disable server-side response handling too ([headroomlabs-ai#3101](headroomlabs-ai#3101)) ([131b119](headroomlabs-ai@131b119)), closes [headroomlabs-ai#3082](headroomlabs-ai#3082) * **ccr:** make StreamingCCRHandler work on OpenAI streams ([headroomlabs-ai#3069](headroomlabs-ai#3069)) ([7ef736f](headroomlabs-ai@7ef736f)) * **ccr:** only buffer a stream when a marker is actually redeemable ([headroomlabs-ai#3092](headroomlabs-ai#3092)) ([c502087](headroomlabs-ai@c502087)) * **ccr:** re-inject headroom_retrieve when history references it on the sessionless path ([942af56](headroomlabs-ai@942af56)) * **ccr:** relay a successful upstream turn when post-processing fails ([headroomlabs-ai#3094](headroomlabs-ai#3094)) ([0ec73fa](headroomlabs-ai@0ec73fa)) * **ccr:** send Accept: application/json on a buffered stream:false turn ([headroomlabs-ai#3102](headroomlabs-ai#3102)) ([139c7cb](headroomlabs-ai@139c7cb)), closes [headroomlabs-ai#3078](headroomlabs-ai#3078) * **ccr:** verify a scanned marker's hash before advertising it ([headroomlabs-ai#2908](headroomlabs-ai#2908)) ([41dab2d](headroomlabs-ai@41dab2d)) * **ci:** prevent native detector from hanging test shards ([headroomlabs-ai#2996](headroomlabs-ai#2996)) ([a708c05](headroomlabs-ai@a708c05)) * **ci:** scope the release credential and stop persisting it to disk ([headroomlabs-ai#3062](headroomlabs-ai#3062)) ([ac8646a](headroomlabs-ai@ac8646a)) * **ci:** unjam release and Docker publishing ([headroomlabs-ai#2958](headroomlabs-ai#2958)) ([e269afb](headroomlabs-ai@e269afb)) * **claude:** reject conflicting auth before proxy startup ([headroomlabs-ai#2993](headroomlabs-ai#2993)) ([2d88e31](headroomlabs-ai@2d88e31)) * **cli/install:** resolve the deployment profile instead of dead-ending on default ([headroomlabs-ai#2832](headroomlabs-ai#2832)) ([8252619](headroomlabs-ai@8252619)) * **cli:** stop the macOS malloc re-exec replacing an embedder's process ([headroomlabs-ai#3064](headroomlabs-ai#3064)) ([96c25f5](headroomlabs-ai@96c25f5)) * **copilot:** route VS Code inline completions to Copilot, not OpenAI ([headroomlabs-ai#3077](headroomlabs-ai#3077)) ([204e751](headroomlabs-ai@204e751)) * **copilot:** send VS Code inline completions to the host that serves them ([headroomlabs-ai#3112](headroomlabs-ai#3112)) ([b77d612](headroomlabs-ai@b77d612)) * **deps:** bump datasets past PYSEC-2026-3716 ([headroomlabs-ai#3136](headroomlabs-ai#3136)) ([df6ff6b](headroomlabs-ai@df6ff6b)) * **deps:** clear the two Rust advisories and make cargo audit blocking ([headroomlabs-ai#3121](headroomlabs-ai#3121)) ([93c474e](headroomlabs-ai@93c474e)) * **deps:** raise the GitPython floor to 3.1.58 to clear 9 open advisories ([headroomlabs-ai#3120](headroomlabs-ai#3120)) ([8156d4d](headroomlabs-ai@8156d4d)) * **docker:** publish compose ports on loopback only ([headroomlabs-ai#3061](headroomlabs-ai#3061)) ([481e0b8](headroomlabs-ai@481e0b8)) * **docker:** ship Bedrock auth and current registry ([headroomlabs-ai#2982](headroomlabs-ai#2982)) ([eafdf11](headroomlabs-ai@eafdf11)) * **doctor:** surface that Claude Desktop agent sessions bypass the proxy ([headroomlabs-ai#2987](headroomlabs-ai#2987)) ([be5b26d](headroomlabs-ai@be5b26d)) * **install:** consolidate Windows fallback and cleanup safety ([headroomlabs-ai#2980](headroomlabs-ai#2980)) ([ddd2a25](headroomlabs-ai@ddd2a25)) * **install:** honor HEADROOM_PORT in install apply and deploy ([headroomlabs-ai#3085](headroomlabs-ai#3085)) ([58f28dc](headroomlabs-ai@58f28dc)) * **install:** stop the PowerShell installer leaking temp dirs into the real user PATH ([headroomlabs-ai#2985](headroomlabs-ai#2985)) ([ddd9f76](headroomlabs-ai@ddd9f76)) * **learn:** include stdout in CLI failure messages, not just stderr ([headroomlabs-ai#3080](headroomlabs-ai#3080)) ([c5563d3](headroomlabs-ai@c5563d3)) * **mcp:** restore SDK v1 compatibility cap ([headroomlabs-ai#2978](headroomlabs-ai#2978)) ([6077e5a](headroomlabs-ai@6077e5a)) * **memory:** sanitize entity_refs to prevent dict-shaped entries crashing search ([headroomlabs-ai#2951](headroomlabs-ai#2951)) ([2d1e96b](headroomlabs-ai@2d1e96b)) * **onnx:** enforce Rust API-24 runtime compatibility ([headroomlabs-ai#2979](headroomlabs-ai#2979)) ([a3fe5cb](headroomlabs-ai@a3fe5cb)) * **openclaw-plugin:** circuit breaker + per-request timeout for proxy resilience ([headroomlabs-ai#639](headroomlabs-ai#639)) ([6576ef6](headroomlabs-ai@6576ef6)) * **opencode:** send x-headroom-project header on all proxied requests ([headroomlabs-ai#2868](headroomlabs-ai#2868)) ([eeb038b](headroomlabs-ai@eeb038b)) * **policy:** price net-cost mutations with the 1h cache-write tier ([headroomlabs-ai#2780](headroomlabs-ai#2780)) ([ef7e07e](headroomlabs-ai@ef7e07e)) * **providers:** don't crash on a non-object HEADROOM_MODEL_LIMITS / models.json ([headroomlabs-ai#3089](headroomlabs-ai#3089)) ([3ed8f76](headroomlabs-ai@3ed8f76)) * **proxy/anthropic:** don't buffer a CCR stream when passthrough discards the stream flip ([headroomlabs-ai#2953](headroomlabs-ai#2953)) ([f1c34d3](headroomlabs-ai@f1c34d3)) * **proxy/anthropic:** don't replay recorded prefix over live history ([headroomlabs-ai#3026](headroomlabs-ai#3026)) ([headroomlabs-ai#3052](headroomlabs-ai#3052)) ([c16be9b](headroomlabs-ai@c16be9b)) * **proxy/anthropic:** repair headroom_retrieve history references the tools array cannot support ([headroomlabs-ai#2876](headroomlabs-ai#2876)) ([7de3573](headroomlabs-ai@7de3573)) * **proxy/anthropic:** stop answering a non-streaming turn with an event stream ([headroomlabs-ai#3142](headroomlabs-ai#3142)) ([0e26fb8](headroomlabs-ai@0e26fb8)) * **proxy/cache:** strip cache_control from messages in the semantic cache key ([headroomlabs-ai#3086](headroomlabs-ai#3086)) ([2cae0f8](headroomlabs-ai@2cae0f8)) * **proxy/gemini:** guard CCR continuation usage against present-null counts ([headroomlabs-ai#3035](headroomlabs-ai#3035)) ([a01897c](headroomlabs-ai@a01897c)) * **proxy/openai:** propagate provider usage on the Responses WS-&gt;HTTP fallback ([headroomlabs-ai#2988](headroomlabs-ai#2988)) ([536c949](headroomlabs-ai@536c949)) * **proxy:** adapt 200 SSE upstream replies on buffered /v1/responses instead of 502 ([headroomlabs-ai#2622](headroomlabs-ai#2622)) ([d76fce0](headroomlabs-ai@d76fce0)) * **proxy:** align signed-thinking wire accounting ([headroomlabs-ai#3015](headroomlabs-ai#3015)) ([b3f4436](headroomlabs-ai@b3f4436)) * **proxy:** complete stateless Responses and buffered CCR lifecycle ([headroomlabs-ai#2997](headroomlabs-ai#2997)) ([8a1d38b](headroomlabs-ai@8a1d38b)) * **proxy:** guard feedback endpoints and add CSRF checks to loopback writes ([headroomlabs-ai#3060](headroomlabs-ai#3060)) ([a6ab359](headroomlabs-ai@a6ab359)) * **proxy:** keep prefixed core tools resident ([headroomlabs-ai#3046](headroomlabs-ai#3046)) ([2f4d001](headroomlabs-ai@2f4d001)) * **proxy:** preserve Codex WebSocket model attribution ([headroomlabs-ai#3029](headroomlabs-ai#3029)) ([a06a51e](headroomlabs-ai@a06a51e)) * **proxy:** relocate stray system-role messages to the top-level system param ([headroomlabs-ai#765](headroomlabs-ai#765)) ([headroomlabs-ai#1357](headroomlabs-ai#1357)) ([9fde127](headroomlabs-ai@9fde127)) * **proxy:** restore the buffered-CCR heartbeat behind a grace window ([headroomlabs-ai#3091](headroomlabs-ai#3091)) ([a29d201](headroomlabs-ai@a29d201)) * **proxy:** scope the signed-thinking lock to blocks that actually changed ([headroomlabs-ai#3124](headroomlabs-ai#3124)) ([17522fb](headroomlabs-ai@17522fb)) * **proxy:** stop a lone surrogate turning a thinking body into a 500 ([headroomlabs-ai#3134](headroomlabs-ai#3134)) ([284ff31](headroomlabs-ai@284ff31)) * **proxy:** stop cached responses replaying the producing turn's wire framing ([headroomlabs-ai#3024](headroomlabs-ai#3024)) ([9d37059](headroomlabs-ai@9d37059)) * **proxy:** stop operator secrets following a client-chosen upstream ([headroomlabs-ai#3122](headroomlabs-ai#3122)) ([05f5ef4](headroomlabs-ai@05f5ef4)) * **proxy:** tune macOS libmalloc and trim allocator pages so long-lived RSS stays bounded ([headroomlabs-ai#2879](headroomlabs-ai#2879)) ([6d87825](headroomlabs-ai@6d87825)) * **reporting:** show net vs gross savings, real skip thresholds, and the effective profile ([headroomlabs-ai#3123](headroomlabs-ai#3123)) ([250ede2](headroomlabs-ai@250ede2)) * tool_search_tool_regex deferred and falsely resolved on direct-Anthropic path ([headroomlabs-ai#2971](headroomlabs-ai#2971)) ([8ea87e7](headroomlabs-ai@8ea87e7)) * **vscode:** persist compatible Claude modes and route Copilot CAPI ([headroomlabs-ai#2986](headroomlabs-ai#2986)) ([1aa701a](headroomlabs-ai@1aa701a)) * **wrap:** set xAI upstream for grok-build proxy ([headroomlabs-ai#2772](headroomlabs-ai#2772)) ([c831081](headroomlabs-ai@c831081)) * **wrap:** stop the Serena pre-index stalling the launch path for 300s ([headroomlabs-ai#2945](headroomlabs-ai#2945)) ([6147883](headroomlabs-ai@6147883)) * **wrap:** verify proxy deps before mutating Codex config ([headroomlabs-ai#1628](headroomlabs-ai#1628)) ([b7f342c](headroomlabs-ai@b7f342c)) ### Performance Improvements * **perf:** skip rotated logs outside the requested window ([headroomlabs-ai#3081](headroomlabs-ai#3081)) ([6c9f41e](headroomlabs-ai@6c9f41e)) ### Dependencies * bump axum from 0.7.9 to 0.8.9 ([headroomlabs-ai#2966](headroomlabs-ai#2966)) ([5731be7](headroomlabs-ai@5731be7)) * bump criterion from 0.5.1 to 0.8.2 ([headroomlabs-ai#2965](headroomlabs-ai#2965)) ([b30f339](headroomlabs-ai@b30f339)) * bump ruff from 0.15.22 to 0.16.2 in the pip-minor-patch group across 1 directory ([headroomlabs-ai#2962](headroomlabs-ai#2962)) ([ff17961](headroomlabs-ai@ff17961)) * bump sha2 from 0.10.9 to 0.11.0 ([headroomlabs-ai#2288](headroomlabs-ai#2288)) ([322425c](headroomlabs-ai@322425c)) * bump the cargo-minor-patch group across 1 directory with 4 updates ([headroomlabs-ai#2964](headroomlabs-ai#2964)) ([888a9f4](headroomlabs-ai@888a9f4)) * bump tokio-tungstenite from 0.24.0 to 0.30.0 ([headroomlabs-ai#2967](headroomlabs-ai#2967)) ([bbe9013](headroomlabs-ai@bbe9013)) * update mcp requirement from &lt;2.0.0,&gt;=1.28.1 to &gt;=1.28.1,&lt;3.0.0 ([headroomlabs-ai#2963](headroomlabs-ai#2963)) ([d6fb536](headroomlabs-ai@d6fb536)) --- 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>
1 parent 0e26fb8 commit b88b907

12 files changed

Lines changed: 108 additions & 19 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
},
66
"metadata": {
77
"description": "Headroom marketplace for Claude Code and GitHub Copilot CLI plugins.",
8-
"version": "0.35.0"
8+
"version": "0.36.0"
99
},
1010
"plugins": [
1111
{
1212
"name": "headroom",
1313
"source": "./plugins/headroom-agent-hooks",
1414
"description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.",
15-
"version": "0.35.0",
15+
"version": "0.36.0",
1616
"author": {
1717
"name": "Headroom Contributors",
1818
"url": "https://github.com/chopratejas/headroom"

.github/plugin/marketplace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
},
66
"metadata": {
77
"description": "Headroom marketplace for Claude Code and GitHub Copilot CLI plugins.",
8-
"version": "0.35.0"
8+
"version": "0.36.0"
99
},
1010
"plugins": [
1111
{
1212
"name": "headroom",
1313
"source": "./plugins/headroom-agent-hooks",
1414
"description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.",
15-
"version": "0.35.0",
15+
"version": "0.36.0",
1616
"author": {
1717
"name": "Headroom Contributors",
1818
"url": "https://github.com/chopratejas/headroom"

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.35.0"
2+
".": "0.36.0"
33
}

.releasemetadata

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"version": "0.35.0",
2+
"version": "0.36.0",
33
"packages": {
4-
"pypi": "0.35.0",
5-
"npm-sdk": "0.35.0",
6-
"npm-openclaw": "0.35.0",
7-
"npm-opencode": "0.35.0",
8-
"agent-hooks-plugin": "0.35.0"
4+
"pypi": "0.36.0",
5+
"npm-sdk": "0.36.0",
6+
"npm-openclaw": "0.36.0",
7+
"npm-opencode": "0.36.0",
8+
"agent-hooks-plugin": "0.36.0"
99
}
1010
}

CHANGELOG.md

Lines changed: 89 additions & 0 deletions
Large diffs are not rendered by default.

plugins/headroom-agent-hooks/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "headroom",
3-
"version": "0.35.0",
3+
"version": "0.36.0",
44
"description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.",
55
"author": {
66
"name": "Headroom Contributors",

plugins/headroom-agent-hooks/.github/plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "headroom",
3-
"version": "0.35.0",
3+
"version": "0.36.0",
44
"description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.",
55
"author": {
66
"name": "Headroom Contributors",

plugins/openclaw/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "headroom-openclaw",
3-
"version": "0.35.0",
3+
"version": "0.36.0",
44
"description": "Headroom context compression plugin for OpenClaw — 70-90% token savings with zero LLM calls",
55
"type": "module",
66
"main": "./dist/index.js",

plugins/opencode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "headroom-opencode",
3-
"version": "0.35.0",
3+
"version": "0.36.0",
44
"description": "Headroom proxy integration plugin for OpenCode - routes LLM traffic through the Headroom proxy for token compression",
55
"type": "module",
66
"main": "./dist/index.js",

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "headroom-ai"
7-
version = "0.35.0"
7+
version = "0.36.0"
88
description = "The Context Optimization Layer for LLM Applications - Cut costs by 50-90%"
99
readme = "README.md"
1010
license = "Apache-2.0"

0 commit comments

Comments
 (0)