发布

  • chore: release main (#2339)

    frostbyte_neo 发布于 2026-07-29 22:54:23 +00:00

    🤖 I have created a release beep boop

    0.33.0

    0.33.0
    (2026-07-29)

    Features

    • lossless: factor shared directory prefix in the grep search fold
      (#2547)
      (7dc9a97)
    • metrics: record per-extension token savings
      (#2371)
      (02eb90f)
    • opencode: ship the transport plugin in pip installs
      (#2601)
      (f54f04f)
    • opencode: support Copilot subscription backend for headroom models
      (#2441)
      (#2445)
      (9089e7f)
    • proxy/hooks: run fold-only (stream-safe) turn hooks on streaming
      OpenAI chat
      (#2549)
      (a6d4921)
    • proxy/savings: aggregate tool-schema savings into Metrics + all
      reporting sinks
      (#2546)
      (9f1ffef)
    • proxy: label GitHub Copilot traffic as "copilot" in the outcome…
      (#2377)
      (d7a8cdb)
    • proxy: make /v1/compress usable as a gateway/Kong sidecar
      (#2458)
      (1329ed7)
    • proxy: model-aware cold-prefix hook — reasoning compaction
      (Kimi/GLM) + cold recompaction (CC)
      (#2555)
      (cb8f4b6)
    • proxy: route selected external compressors through the content
      router
      (#2388)
      (e3c7964)
    • proxy: select built-in compressors via --compressor + registry
      inventory
      (#2373)
      (56c7d4a)
    • rust: add structured prose offload plumbing
      (#334)
      (#2378)
      (9e07785)
    • rust: port CodeCompressor AST compressor to Rust (parity-only)
      (#1154)
      (e530de5)
    • rust: port Kompress ML prose compressor to Rust (parity-only)
      (#1153)
      (83e27e5)
    • telemetry: record provider cache read/write/uncached tokens per
      request
      (#2450)
      (bec4cce)
    • transforms: add compressed signal + dispatch code_aware/html/diff
      via registry
      (#2400)
      (7ebda67)
    • transforms: add pluggable compressor registry +
      headroom.compressor entry point
      (#2370)
      (a02073e)
    • transforms: dispatch kompress/text via the compressor registry +
      forward question
      (#2411)
      (446ec26)
    • transforms: dispatch smart_crusher via the compressor registry
      (defer kompress/text ML boundary)
      (#2404)
      (7c7bf43)
    • transforms: make built-in compressors real Compressor
      implementations (adapters)
      (#2391)
      (981616c)
    • wrap: boost Serena — symbol-first guidance, wrap-time pre-index,
      repo-language scoping
      (#2425)
      (fd0e1a8)
    • wrap: default code-memory to Serena (dashboard browser off) behind
      unified --code-memory
      (#2413)
      (6e4425a)
    • wrap: reduce-at-source — SAFE quiet-CLI env defaults for the
      launched agent
      (#2548)
      (c990cfb)

    Bug Fixes

    • backends/litellm: guard None completion_tokens in usage mapping
      (#2322)
      (44a174f)
    • backends: don't crash the OpenAI->Anthropic converter on empty
      choices
      (#2484)
      (43a7b57)
    • cache: preserve cache_control ttl when re-anchoring a breakpoint
      (#2651)
      (e0d2cd0)
    • cache: preserve client cache_control ttl when consolidating
      breakpoints
      (#2382)
      (8906d3a)
    • ccr: guard empty/malformed OpenAI choices in
      _extract_assistant_message
      (#2389)
      (89319fb)
    • ccr: sliding idle-window TTL with max-lifetime ceiling in the Rust
      core backends
      (#2604)
      (#2631)
      (e825588)
    • ci: align Ruff tooling versions
      (#2406)
      (2bb14d1)
    • cli: warn when Headroom proxy URL leaks into the shell after
      unwrap claude
      (#2238)
      (#2571)
      (904bc67)
    • codex: detect keyring-backed ChatGPT auth
      (#2478)
      (46293f4)
    • compression: report source-line span in CCR compression marker
      (#2597)
      (18e1c3c)
    • copilot: derive GHE credential host from API URL
      (#800)
      (#2511)
      (4a8157f)
    • copilot: normalize subscription API routing
      (#2441)
      (#2455)
      (2eca5ee)
    • copilot: preserve /v1 for the Anthropic /v1/messages endpoint
      (#2409)
      (#2414)
      (c400f90)
    • deps: bump mcp to 1.28.1 to clear 3 high-severity CVEs
      (#2348)
      (a90be94)
    • grok: preserve business-seat auth while routing only inference
      (#2514)
      (e4076bb)
    • image: reuse image models instead of rebuilding them per request
      (#2513)
      (#2536)
      (2a63ec7)
    • install: carry upstream-routing env overrides into supervised
      deployments
      (#2429)
      (170b04a)
    • install: default to cache mode, matching headroom proxy
      (#1893
      follow-up)
      (#2563)
      (b121223)
    • install: migrate deployments off the retired chopratejas image
      repo (#2427)
      (17ff13c)
    • install: use CREATE_NO_WINDOW instead of DETACHED_PROCESS on
      Windows
      (#2527)
      (045f3df)
    • kompress: raise the default execution-slot wait
      (#2456)
      (5bd2266)
    • learn: detect the active OpenCode database
      (#2587)
      (f74d874)
    • learn: keep traceback tail in tool-error digest preview
      (#2596)
      (85e8699)
    • learn: treat unreadable candidate paths as absent in project
      decode
      (#2446)
      (a09ba6c)
    • mcp: pin mcp dependency to <2.0.0 to prevent server startup
      crash (#2642)
      (b3f016b)
    • proxy/cost: count Gemini thinking tokens in output usage
      (#2639)
      (22b707f)
    • proxy/cost: record each request's savings exactly once (drop 3
      double-counts)
      (#2545)
      (0845b26)
    • proxy/cost: warn once per model when pricing lookup fails
      (#2504)
      (#2535)
      (fa47637)
    • proxy/gemini: None-guard token counts from usageMetadata
      (#2347)
      (f64aac9)
    • proxy/gemini: tolerate malformed parts on the compression path
      (#2486)
      (07cf547)
    • proxy/metrics: move the savings-ledger append off the event loop
      (#2439)
      (4aac068)
    • proxy/openai: cache under looked-up messages
      (#2420)
      (7052d52)
    • proxy/openai: don't record Codex WS savings without input
      accounting
      (#2493)
      (2195ba7)
    • proxy/openai: feed chat/completions traffic into the traffic
      learner
      (#2333)
      (6cdfd3f)
    • proxy/openai: None-guard usage token counts on the chat path
      (#2431)
      (313c290)
    • proxy/openai: replay incremental events in buffered Responses SSE
      (#2410)
      (#2415)
      (0cbc0e8)
    • proxy/output-shaping: tolerate a non-string system block text in
      steering
      (#2435)
      (3e97671)
    • proxy/perf: count turn-hook message folds in token accounting
      (#2520)
      (c371d5a)
    • proxy/perf: tokenizer-consistent token accounting + surface
      tool-schema savings
      (#2542)
      (1cc53c9)
    • proxy/streaming: tolerate malformed content in _response_to_sse
      (#2481)
      (77b26c0)
    • proxy: keep buffered CCR streams alive
      (#2479)
      (a2e42fb)
    • proxy: keep core tools and the client's ToolSearch resident for
      PascalCase clients
      (#2647)
      (1d29738)
    • proxy: offload OpenAI and Gemini tokenizer counting off the event
      loop (#2498)
      (806d2e4)
    • proxy: promote Kompress health after runtime load
      (#2402)
      (54526bc)
    • proxy: reassemble server_tool_use.input from streamed partial_json
      (#2449)
      (8c8fae0)
    • proxy: report deferred Kompress status and promote health from
      cache (#2564)
      (d50cfab)
    • proxy: skip max_tokens rename for backend-routed openai chat
      (#2401)
      (d6a1af4)
    • release: publish Windows wheel + sdist (disable PyPI attestations,
      #112)
      (#2405)
      (f9cbdd6)
    • release: sync generated version metadata on the release branch
      (#2659)
      (5383c6b)
    • rust: port CJK-aware relevance-query matching to CodeCompressor
      (#2634)
      (e86c639)
    • security: exclude compromised ast-grep-cli 0.44.1 (supply-chain
      trojan)
      (#2342)
      (494fb5a)
    • tokenizers: price Claude against a real BPE (tiktoken o200k) not a
      char estimate
      (#2543)
      (285176b)
    • transforms/cross-turn-dedup: don't renumber-fold zero-padded line
      prefixes
      (#2369)
      (f4070c4)
    • transforms/kompress-remote: keep compress fail-open on malformed
      200 (#2320)
      (b759990)
    • wrap: emit bare dotted keys for Codex --config overrides
      (#2383)
      (f57e959)
    • wrap: make RTK opt-in (off by default) across wrap subcommands
      (#2344)
      (44136ed)
    • wrap: skip Serena project setup outside real project roots
      (#2574)
      (0994ea0)
    • wrap: stop same-port persistent routing during claude unwrap
      (#2340)
      (#2350)
      (cf5fa64)

    Performance Improvements

    • content_router: dedupe content detection
      (#2419)
      (9b016f2)

    Dependencies

    • bump the cargo-minor-patch group with 10 updates
      (#2284)
      (3266ed7)
    • bump the npm-minor-patch group across 3 directories with 7 updates
      (#2276)
      (961866b)

    Code Refactoring

    • transforms: dispatch simple built-in strategies via the compressor
      registry
      (#2399)
      (fc9c63f)
    • wrap: retire tokensave; Serena is the code-memory MCP
      (#2499)
      (5d23a0a)

    This PR was generated with Release
    Please
    . See
    documentation.


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

    下载附件