Core Release v1.7.7
- feat: add
BifrostContextKeyCompatDroppedParamsso the compat plugin can carry its dropped-parameter list per request instead of on the shared plugin struct (#5902) - feat: rewrite
thinking.type: "enabled"to the adaptive form for adaptive-only Anthropic models (Opus 4.7+, Opus 4.8, Opus 5, Sonnet 5, Fable 5, Mythos 5) on both the typed request path and the raw passthrough body, and gatestripUnsupportedAnthropicFieldsoncapModelso custom deployment names resolve correctly (#5934) - feat: add service instance id to OTEL attributes (#5849)
- feat: add team / customer / business-unit ids and names to OTEL metrics (#5848)
- feat: opt-in HTTP/2 PING keepalives on the Bedrock provider via a configurable interval (0 = off) @jeremym-tanium
- fix: always emit a well-formed
message_starton the Anthropic surface - the frame now carries amessageobject with ausageobject and an arraycontenteven when the upstream created event has no payload, and the chat-completions converter no longer panics on a content-less assistant message - fix: carry tool-result
is_erroracross the chat/Responses mux in both directions, and stop the unmarshal reattach gate from dropping a tool message that marks a failure without atool_call_id(#5890) - fix: mark failed MCP tool executions as errors instead of replaying them to the model as successful results - covers agent-loop execution errors, the MCP protocol's own
isErrorflag which was previously discarded, and CodeMode lookup/sandbox failures (#5890) - fix: carry tool-result
is_errorthrough the chat completions surface so Anthropic replay and Bedrock Converse status reflect failed tool calls @AidanAllchin - fix: preserve encrypted reasoning as a Bedrock replay signature when translating Responses history @zachgersh
- fix:
include_server_side_tool_invocationsnow reaches the Gemini declaration-drop gate, so mixed server/client tool opt-in propagates from the Anthropic Messages surface (#5935) @AdityaPainuli - fix: inline mid-conversation
role:"system"messages as a user turn when the native system form is unavailable (unsupported model or wrong provider), tighten the Anthropic placement check to both of its clauses, and stopconvertBifrostSystemReminderToBedrockUserMessagefrom droppingcache_control(#5931) - fix: map Bedrock
ConverseStreamstopReasontotool_usefor tool-use turns instead of reportingend_turn(#5209) @axelray-dev - fix: fail soft on
invalid_encrypted_contentby stripping replayed reasoningencrypted_contentand retrying once, cloning reasoning structs rather than mutating them in place, and reporting the true retry ceiling in retry logs (#5892) - fix: normalize
tool_search_tool_*types on the Responses path so server-side tool search actually runs (#5891) - fix: stop disabling DeepSeek thinking on ordinary multi-turn conversations - the disable gate is narrowed, the thinking shim is now non-mutating,
reasoning_contentis stripped except on tool calls, and inbound reasoning aliases are normalized (#5888) - fix: emit an all-zero
usageobject onmessage_startfor both the native Anthropic and Bedrock invoke streaming paths so@ai-sdk/anthropic4.0.6-4.0.32 no longer rejects the frame as missing a required field (#5886) - fix: carry
documenttool-result blocks through the Anthropic to Responses converters with a synthesized filename when the block has no title, and propagateFileURLandFileTypeacross all three chat/responses conversion paths (#5884) - fix: resolve the base provider for custom providers via the new
BifrostContextKeyBaseProviderTypeandResolveBaseProviderhelper, so reasoning item-id embedding is decided from the built-in provider rather than the custom provider name (#5897) - fix: a nil stream delta with a non-nil finish reason no longer bails out of the stream (#5878)
- fix: keep
candidates[0].safetyRatingsandavgLogprobsongenerateContent(Gemini format) responses from Vertex AI (#5877) - fix: support API-key and context-header auth in the Vertex cached content methods instead of unconditionally overwriting the
Authorizationheader with an OAuth token (#5462) @TransactCharlie - fix: detect the GPT-5 series with
strings.Containsinstead ofstrings.HasPrefixso prefixed model names still resolve reasoning-effort support (#5867) - fix: normalize and whitespace-trim attribute values when exporting metrics (#5847)
- fix: carry the client's multipart filename through transcription ingress so non-WAV containers are no longer relabelled
audio.mp3and rejected (#5823) @AdityaPainuli - fix: concurrent requests sharing a W3C trace id no longer lose LLM log rows (#5356) @AdityaPainuli
- fix: clamp http2_ping_interval_in_seconds to avoid int64 overflow on conversion to time.Duration @jeremym-tanium
- perf: avoid copying known request fields on the Anthropic path (#5809) @zachgersh
Installation
go get github.com/maximhq/bifrost/core@v1.7.7This release was automatically created from version file: core/version