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

4 hours ago

Core Release v1.7.7

  • feat: add BifrostContextKeyCompatDroppedParams so 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 gate stripUnsupportedAnthropicFields on capModel so 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_start on the Anthropic surface - the frame now carries a message object with a usage object and an array content even 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_error across the chat/Responses mux in both directions, and stop the unmarshal reattach gate from dropping a tool message that marks a failure without a tool_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 isError flag which was previously discarded, and CodeMode lookup/sandbox failures (#5890)
  • fix: carry tool-result is_error through 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_invocations now 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 stop convertBifrostSystemReminderToBedrockUserMessage from dropping cache_control (#5931)
  • fix: map Bedrock ConverseStream stopReason to tool_use for tool-use turns instead of reporting end_turn (#5209) @axelray-dev
  • fix: fail soft on invalid_encrypted_content by stripping replayed reasoning encrypted_content and 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_content is stripped except on tool calls, and inbound reasoning aliases are normalized (#5888)
  • fix: emit an all-zero usage object on message_start for both the native Anthropic and Bedrock invoke streaming paths so @ai-sdk/anthropic 4.0.6-4.0.32 no longer rejects the frame as missing a required field (#5886)
  • fix: carry document tool-result blocks through the Anthropic to Responses converters with a synthesized filename when the block has no title, and propagate FileURL and FileType across all three chat/responses conversion paths (#5884)
  • fix: resolve the base provider for custom providers via the new BifrostContextKeyBaseProviderType and ResolveBaseProvider helper, 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].safetyRatings and avgLogprobs on generateContent (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 Authorization header with an OAuth token (#5462) @TransactCharlie
  • fix: detect the GPT-5 series with strings.Contains instead of strings.HasPrefix so 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.mp3 and 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.7

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

Don't miss a new bifrost release

NewReleases is sending notifications on new releases.