github maximhq/bifrost core/v1.7.10
Core v1.7.10

latest releases: helm-chart-v2.1.35, core/v1.7.11
6 hours ago

Core Release v1.7.10

  • fix: retry after an unverifiable reasoning refusal on chat-shaped requests too - /v1/chat/completions and /v1/messages carry replayed reasoning on reasoning_details, but the fail-soft strip only handled Responses-shaped items, so a router that switched models mid-conversation returned "messages.N.content.0: Invalid signature in thinking block" straight to the client instead of retrying without the signature
  • fix: strip thinking signatures off Responses content blocks, not just encrypted_content on the reasoning item - a message could need the strip with encrypted_content already absent, and only reasoning items are dropped when nothing survives so an ordinary message keeps its own content
  • fix: stop sending reasoning.content to non-gpt-oss OpenAI/Azure reasoning models, which cap the array at zero entries and reject a populated one with "Invalid 'input[N].content': array too long. Expected an array with maximum length 0"; replayed Anthropic thinking blocks translate into reasoning_text blocks and were hitting this. summary + encrypted_content already carry everything OpenAI accepts
  • fix: stop clearing reasoning_effort for current-generation Grok models - the rule substring-matched "grok-3-mini", so grok-4.5, grok-4.6 and grok-4.20-multi-agent all silently lost the field and answered at the wrong reasoning depth, cost and latency. Replaced with an exact-match deny-list (SupportsGrokReasoningEffort) that normalizes routing prefixes, -latest and xAI's 4-digit date suffixes
  • fix: keep reasoning_effort: "xhigh" for grok-4.6 and grok-4.20-multi-agent - the shared OpenAI-dialect normalizer downgraded it to "high" before the xAI compat pass ran, so the value was lost even with the deny-list corrected. grok-4.5 still downgrades on purpose, matching xAI's documented upstream coercion
  • fix: emit content_part.added, output_text.delta, output_text.done and content_part.done when a tool-based structured-output call is reassembled into a message on the Responses streaming path - only output_item.added/done were emitted, so every consumer reading incremental events rather than the item snapshot saw a stream with no text at all. A schema-constrained streamGenerateContent to Bedrock Mantle returned {"candidates":[{"content":{"role":"model"},"finishReason":"STOP"}]} with tokens billed. Affects Vertex, Bedrock Mantle and Azure Claude, the three providers that emulate structured output with a forced tool call
  • feat: inline URL-sourced images and documents for AWS-hosted Claude on the native-Anthropic path - Bedrock Mantle rejects {"source":{"type":"url"}} with "URL content sources are not yet supported for this model". Fetches go through the SSRF-safe dialer with a size cap, and a failed fetch aborts the request rather than silently dropping an attachment. Brings the native-Anthropic surface to parity with Bedrock's Converse path

Installation

go get github.com/maximhq/bifrost/core@v1.7.10

This release was automatically created from version file: core/version

Don't miss a new bifrost release

NewReleases is sending notifications on new releases.