Core v1.7.10
Core Release v1.7.10
- fix: retry after an unverifiable reasoning refusal on chat-shaped requests too -
/v1/chat/completionsand/v1/messagescarry replayed reasoning onreasoning_details, but the fail-soft strip only handled Responses-shaped items, so a router that switched models mid-conversation returned "messages.N.content.0: Invalidsignatureinthinkingblock" straight to the client instead of retrying without the signature - fix: strip thinking signatures off Responses content blocks, not just
encrypted_contenton the reasoning item - a message could need the strip withencrypted_contentalready absent, and only reasoning items are dropped when nothing survives so an ordinary message keeps its own content - fix: stop sending
reasoning.contentto 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 intoreasoning_textblocks and were hitting this.summary+encrypted_contentalready carry everything OpenAI accepts - fix: stop clearing
reasoning_effortfor current-generation Grok models - the rule substring-matched "grok-3-mini", sogrok-4.5,grok-4.6andgrok-4.20-multi-agentall 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,-latestand xAI's 4-digit date suffixes - fix: keep
reasoning_effort: "xhigh"forgrok-4.6andgrok-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.5still downgrades on purpose, matching xAI's documented upstream coercion - fix: emit
content_part.added,output_text.delta,output_text.doneandcontent_part.donewhen a tool-based structured-output call is reassembled into a message on the Responses streaming path - onlyoutput_item.added/donewere emitted, so every consumer reading incremental events rather than the item snapshot saw a stream with no text at all. A schema-constrainedstreamGenerateContentto 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.10This release was automatically created from version file: core/version