core/v1.7.7
maximhq/bifrostcore/v1.7.7Aug 7, 2026by akshaydeo
AI Summary
A major core update fixing numerous issues across AI provider integrations (Anthropic, Bedrock, OpenAI, Gemini), tracing, and observability.
Key Highlights
- Added `BifrostContextKeyCompatDroppedParams` for per-request parameter handling
- Rewrote `thinking.type` for adaptive Anthropic models
- Added OTEL attributes (service instance, team, customer, business unit)
- Fixed tool execution errors and Bedrock response handling
- Fixed concurrent request log row loss
New Features
- Added `BifrostContextKeyCompatDroppedParams`
- Rewrote `thinking.type` for adaptive-only Anthropic models
- Added service instance id to OTEL attributes
- Added team/customer/business-unit ids to OTEL metrics
- Opt-in HTTP/2 PING keepalives on Bedrock
Full Release Notes
## 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](https://github.com/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](https://github.com/AidanAllchin) - fix: preserve encrypted reasoning as a Bedrock replay signature when translating Responses history [@zachgersh](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/AdityaPainuli) - fix: concurrent requests sharing a W3C trace id no longer lose LLM log rows (#5356) [@AdityaPainuli](https://github.com/AdityaPainuli) - fix: clamp http2_ping_interval_in_seconds to avoid int64 overflow on conversion to time.Duration [@jeremym-tanium](https://github.com/jeremym-tanium) - perf: avoid copying known request fields on the Anthropic path (#5809) [@zachgersh](https://github.com/zachgersh) ### Installation ```bash go get github.com/maximhq/bifrost/core@v1.7.7 ``` --- _This release was automatically created from version file: `core/version`_