-
chore: release main (#2792)
发布于
2026-08-13 00:02:51 +00:00 🤖 I have created a release beep boop
0.35.0
0.35.0
(2026-08-12)Features
- beacon: allowlist the routing summary key
(#2818)
(7940c05) - beacon: hourly R2 compaction, per-strategy savings, and a stack
that reports
(#2853)
(e0870ef) - cli,pricing: add CLI extension seam and prompt-cache TTL pricing
(#2802)
(6ec3e34)
Bug Fixes
- anthropic: strip first-party tool search on custom upstreams
(#2539)
(7f6950b) - backends/anyllm: convert Anthropic tools and tool_choice to OpenAI
shape
(0d6866b) - backends/anyllm: stream tool_use blocks and map finish_reason on
the streaming path
(e4904e2) - backends/litellm: None-guard core token counts in OpenAI usage
block (#2324)
(12f9f58) - beacon: report all-layers savings, not context-compression only
(#2796)
(e9a24f3) - beacon: split session failures by status code
(#2815)
(2954e37) - cache: bound compression cache bookkeeping
(0ae948c) - cache: enforce Anthropic's 1h-before-5m cache_control ordering
before forwarding
(#2941)
(3752458) - cache: mirror client cache_control positions instead of
single-marker consolidation
(def3d76) - cache: stabilize Anthropic block-growing lineages
(#2917)
(1a04c95) - ccr: avoid injecting tool on chat streaming
(d0c1f5b) - ccr: preserve exact SQLite TTL boundary
(#2669)
(d0a86d4) - ccr: report embedded hashes from compress endpoint
(#717)
(685ebe4) - ccr: resolve <<ccr:...>> markers inline when no
retrieve-tool path exists
(#2512)
(ce8ce83) - ccr: tolerate null/malformed OpenAI data in response handling
(#2467)
(e583e08) - ci: publish latest from the root Docker manifest
(#2252)
(5568d73) - claude: stop forcing tool search on Foundry
(#2477)
(7981396) - cli/update: let install ownership win over bare /.dockerenv so
venv installs self-update
(#2830)
(7092b53) - codex: route alpha search through the Codex backend
(#2538)
(a540eb2) - content-router: protect custom-tag blocks before mixed-content
section split
(d7bc1e2) - deps: bump h2 to 4.4.1 for CVE-2026-71554
(#2839)
(564e0a8) - deps: enforce audited transitive dependency floors
(#2791)
(64e2039) - doctor: flag
ollama launch claudeproxy bypass instead of
misdirecting
(#2566)
(7f24d69) - emit SSE ping before message_start on Bedrock streaming path (issue
#902)
(#1080)
(4dab254) - gemini: resolve native CCR retrieval calls
(#2253)
(2483f57) - health: label kompress as degraded/optional when not yet loaded
(#2865)
(8949371) - image: decouple routing types from trained_router so importing the
compressor doesn't import torch
(#2513)
(#2537)
(d7cf981) - install/windows: register persistent-task from S4U hidden XML
(#2453)
(#2459)
(1edaeb8) - install: don't crash the PowerShell installer when $PROFILE is
unset (#2469)
(fc5c4e2) - install: trust Docker bridge for dashboard metadata
(e044139) - install: use --userns=keep-id under Podman so bind-mount writes
don't fail
(#2846)
(3488f8d) - learn/gemini: stop double-counting session tokens
(#2230)
(29d8a5e) - learn/grok: detect a Windows absolute project path
(#2283)
(e240df2) - learn: stop classifying a successful exit code 0 as an error
(#2289)
(a24fe7d) - litellm: add async_post_call_success_hook to HeadroomCallback
(#1322)
(3107994) - litellm: don't forward a caller key the target cannot accept
(#2883)
(2f2950a) - memory: bound the TrafficLearner pending-pattern accumulator
(memory leak)
(#2579)
(1f5feff) - memory: close DirectMem0 resources
(6596182) - memory: close MCP backend on shutdown
(4bd8ecd) - memory: don't crash inline memory extraction on a non-object
<memory> block
(#2470)
(e00c6ff) - memory: keep vector metadata in sync
(#2295)
(c471800) - memory: make explicit-project and user store keys
collision-resistant
(#2231)
(f840d5f) - memory: skip <system-reminder> blocks when building the
retrieval query
(#2195)
(#2541)
(4e5a67a) - memory: sync FTS5 and vector indexes on CLI
delete/edit/prune/purge
(fd4628d) - oauth2: make repository lint checks pass
(c85abf7) - observability: aggregate tool savings in OTEL
(#2936)
(941c25d) - onnx: stop ONNX thread pools from spinning idle cores
(#2495)
(#2540)
(5c561bd) - openai: skip Responses tool-search deferral for clients that
cannot execute it
(#2696)
(54ea28d) - opencode: ship the transport hook-shim so wheel installs route
Node child traffic
(702dbc5) - providers/anthropic: don't crash token estimation on null
tool_calls
(#2472)
(08466f3) - providers/openai: bound tiktoken vocab loads with the guarded
loader
(#2554)
(0805e8e) - proxy/anthropic: inject headroom_retrieve whenever a CCR marker is
present, not only for new markers
(#2848)
(3808f60) - proxy/anthropic: None-guard usage token counts on the direct
buffered path
(#2434)
(2b5ee7c) - proxy/anthropic: run tool-search history repair after turn hooks
(c6f9948) - proxy/batch: don't crash an OpenAI batch on a valid-JSON
non-object line
(#2316)
(1f2c681) - proxy/bedrock: report uncached input tokens from backend usage,
not the live-zone count
(#2318)
(c19e412) - proxy/gemini: keep streaming-parity baseline so eligible_pct can't
exceed 100
(#2824)
(b97c7c6) - proxy/metrics: cap client-supplied model label cardinality
(#2480)
(e24a7e6) - proxy/metrics: escape label values in the Prometheus export
(#2463)
(6a53861) - proxy/openai: don't crash the Responses memory tool loops on null
arguments
(#2273)
(a30db2c) - proxy/openai: feed Codex WS traffic into the traffic learner
(#2334)
(f669149) - proxy/openai: run response hooks on Responses, and bill their
re-drives
(#2872)
(675d13f) - proxy: allow settings routes for trusted gateway/dashboard clients
(#2491)
(a5b0a8f) - proxy: cache litellm model resolution to stop repeated Provider
List spam
(99f07e7) - proxy: cancel periodic TOIN task on shutdown
(739fdef) - proxy: close the upstream stream when a streaming body is never
consumed
(0951663) - proxy: compress cache-mode cold starts and tag prefix-mismatch
passthrough
(#2365)
(aaeba0a) - proxy: emit request log timestamps in UTC
(620028f) - proxy: enable tool search by default and repair poisoned
transcripts
(#2807)
(0237cbf) - proxy: gate mid-turn message coalescing to Claude Code clients
(#1643)
(a4bd2e6) - proxy: give each Codex /v1/responses WS turn a unique request_id
(#2164)
(d02df10) - proxy: graceful shutdown and reliable Ctrl+C exit
(#621)
(17cdb18) - proxy: guard telemetry and TOIN endpoints
(cde1513) - proxy: include tool_search_deferral savings in the savings ledger
(12149f7) - proxy: pass through cross-region prefixed Bedrock model IDs
directly
(#2330)
(64cb46e) - proxy: port session-sticky beta headers to the Rust proxy
(#2381)
(f6398a6) - proxy: preserve merged session and quarantine contracts
(#2943)
(039cd24) - proxy: preserve signed Anthropic thinking blocks on outbound
re-serialize
(#2254)
(dc163bc) - proxy: stop discarding compressed Codex WS later-frame payloads
(#2823)
(4ec416d) - proxy: time-cap the compression timeout-debt quarantine
(#2360)
(#2412)
(c5a08d2) - proxy: unwrap Hermes tool_call bridge in tool name map
(#2717)
(a97b824) - publish headroom-opencode in release workflow
(#2372)
(7859154) - settings: accept documented HEADROOM_* env names as settings keys
(#2833)
(de9e052) - subscription: dedup transcript usage by message id
(#2340 token
inflation)
(#2408)
(74275b7) - toin: bound private query and pattern retention
(8cd1380) - tokenizer: coerce non-string tool_call fields before counting
(#2801)
(b6f9877) - tokenizer: price CJK in the Rust fixed-ratio estimator (Python
parity)
(#2260)
(6840153) - transforms/adaptive-sizer: honor max_k on small-input fast path
(#2319)
(8a90523) - transforms/smart_crusher: don't crash on a tool call with a null
function
(#2232)
(3bb02f8) - Vertex model pricing shows $0.00 for versioned model names and
vertex:anthropic provider
(#2517)
(eb5b5e4) - wrap/claude: keep --1m effective when an explicit --model is
passed through
(c093bf1) - wrap/opencode: verify the opencode binary before mutating config
(ae38486) - wrap/serena: install Serena from the serena-agent PyPI wheel, not
the git source
(d7b25ae) - wrap: honor Copilot OAuth wire-api override and model default
(#2387)
(1db6d88) - wrap: serialize shared proxy startup
(#2946)
(e540d64) - wrap: stop the launch cwd from shadowing the installed package in
the proxy subprocess
(#2843)
(c49be26)
Performance Improvements
- cut hot-path latency 27% (token-count memo, startup preloads, JSON
scan memo)
(#2838)
(53af90d) - proxy: bound upstream calls and hot-path costs
(#2852)
(f624d3a) - subscription: skip transcripts older than the window in
compute_window_tokens
(#2861)
(91d6bf3)
Dependencies
- bump brace-expansion from 5.0.7 to 5.0.9 in /docs
(#2751)
(56ee57b) - bump bytesize from 1.3.3 to 2.4.2
(#2286)
(6448545) - bump hf-hub from 0.4.3 to 0.5.0
(#2285)
(4925bf6) - bump next from 16.2.10 to 16.3.0 in /docs
(#2750)
(0fd0b99) - bump postcss from 8.5.19 to 8.5.25 in /plugins/openclaw
(#2749)
(cd60ee9) - bump postcss from 8.5.19 to 8.5.25 in /plugins/opencode
(#2748)
(ff4e016) - bump postcss from 8.5.19 to 8.5.25 in /sdk/typescript
(#2747)
(267c2bd) - bump postcss from 8.5.19 to 8.5.26 in /docs
(#2881)
(e6e5826) - bump ruff from 0.15.17 to 0.15.22 in the pip-minor-patch group
(#2501)
(ecf130d) - bump rusqlite from 0.32.1 to 0.40.1
(#2287)
(522faa1) - bump the cargo-minor-patch group across 1 directory with 22 updates
(#2916)
(148d860)
This PR was generated with Release
Please. See
documentation.
Co-authored-by: JD Davis mxjerrett@gmail.com
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>下载附件
- beacon: allowlist the routing summary key