core/v1.11.2
maximhq/bifrostcore/v1.11.2Oct 6, 2026by akshaydeo
Upgrading?
AI Summary
Core v1.11.2 improves streaming for Claude tools, introduces prompt caching compatibility, and enhances security by capping zstd decoder memory usage.
Key Highlights
- Incremental tool-call argument streaming to prevent timeouts
- Prompt cache marker translation for gpt-5.6+ models
- Security hardening via 100 MiB zstd decoder window cap
- Per-message effort support with datasheet configuration
- Performance optimizations in message processing logic
New Features
- Datasheet-overridable per-message effort support
Full Release Notes
## Core Release v1.11.2 - [fix]: Claude tool-call arguments stream incrementally on Bedrock and Vertex. Without fine-grained tool streaming Claude emits tool input one complete JSON value at a time, so a long argument (a Write call's content) arrived as one burst after minutes of silence and Claude Code aborted with "Stream idle timeout - no chunks received". Claude Code only opts in (eager_input_streaming) when it talks to Bedrock or Vertex directly, and sends nothing to a gateway, so Bifrost now defaults eager_input_streaming on custom tools that leave it unset for every Claude model on Vertex and for Sonnet 4.6, Sonnet 5+, Opus 4.7+ and Fable on Bedrock, keeping an explicit false. Bedrock Converse, which has no per-tool slot and whose edge drops the outer anthropic-beta header, now carries fine-grained-tool-streaming-2025-05-14 in additionalModelRequestFields.anthropic_beta; the Bedrock invoke ingress keeps eager_input_streaming and the legacy anthropic_beta opt-in instead of dropping them [@akshaydeo](https://github.com/akshaydeo) - fix: translate Anthropic cache_control markers on tool results into prompt_cache_breakpoint for gpt-5.6+ on OpenAI, Azure, Bedrock and Bedrock Mantle, on both Chat Completions and Responses; Responses also marks input_image and input_file parts, and at most four breakpoints are kept (the latest ones) (#8012) - fix: cap the zstd decoder window at 100 MiB so an oversized frame header is rejected before any allocation (#7859) <Warning> zstd-compressed bodies whose frame header asks for a window above 100 MiB are now rejected. </Warning> - fix: mask env/vault-resolved values in provider alias configs and Bedrock endpoint overrides when they are redacted for API responses (#7858) - [fix]: Anthropic per-message effort is carried end to end. An effort-only `role:"system"` message (`content: []` with `output_config.effort`) was dropped on ingress, so a per-turn effort override never reached Anthropic. AnthropicMessage and the neutral ResponsesMessage now carry the per-message `output_config`, Anthropic direct re-emits it on Fable 5.1, Opus 5+ and Sonnet 5.5 with the `mid-conversation-output-config-2026-07-01` beta injected, and other models and the OpenAI-shaped egress drop it fail-soft (#7714) [@akshaydeo](https://github.com/akshaydeo) - [fix]: Per-message `output_config` is stripped wherever per-message effort is unsupported. Claude Code 2.1.285 sends `output_config` on a text-bearing `role:"system"` message, and the raw passthrough forwarded it to Vertex, which rejected it with `messages.1.output_config: Extra inputs are not permitted`. The raw-body strip now removes `messages[].output_config` off Anthropic direct and on models without per-turn effort (Vertex, Bedrock invoke, Bedrock Mantle, Azure, DeepSeek, Fireworks, vLLM, SGL), keep the message text and the top-level `output_config.effort`, and drop effort-only system messages whole [@akshaydeo](https://github.com/akshaydeo) - [feat]: Per-message effort support is datasheet-overridable via `supports_mid_conversation_output_config` (`ModelCapabilities.SupportsMidConvOutputConfig`). A record set for a (provider, model) pair decides the raw-body strip, the conversion and the beta injection. Without a record the hardcoded gate applies (Anthropic direct on the documented models) [@akshaydeo](https://github.com/akshaydeo) - [fix]: The Anthropic raw-body strip no longer copies every message on each request to providers without server-side fallback or prompt-caching scope (Vertex, Bedrock, Azure and others). Byte prefilters skip the fallback-block, `cache_control.scope` and per-message `output_config` walks when no message can need them, and the walks use gjson ForEach instead of materialising arrays. A 400-message, 800 KB conversation to Vertex dropped from 4.6 MB allocated and 4.4 ms to 32 B and 2.4 ms per strip [@akshaydeo](https://github.com/akshaydeo) - [fix]: A system item that carries both text and a per-message `output_config.effort` keeps its effort on the hoist and inline fallbacks. The text goes to the top-level system block or an inlined `<system-reminder>` turn as before, and the override is emitted as a separate effort-only system message, which Anthropic exempts from placement rules [@akshaydeo](https://github.com/akshaydeo) ### Installation ```bash go get github.com/maximhq/bifrost/core@v1.11.2 ``` --- _This release was automatically created from version file: `core/version`_
Related Repositories
ollama/ollama★ 184,215
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,053
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,614
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.
junegunn/fzf★ 83,715
:cherry_blossom: A command-line fuzzy finder