发布

  • chore: release main (#2792)

    frostbyte_neo 发布于 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 claude proxy 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>

    下载附件