v2.2.3
Changelog
v2.2.3 moves the enterprise gateway onto OSS transports v2.2.3. Routing-rule fallbacks can now pin a provider key, and the enterprise adaptive load balancer keeps those pins, so one rule can retry the same provider and model on a different key. The OSS release also adds OpenAI async tool execution and GPT-6 prompt cache breakpoints.✨ Features
- Pinned Keys Survive Load-Balanced Fallbacks - The adaptive load balancer now keeps the
key_idpin on each configured routing-rule fallback. Configured fallbacks are deduplicated on provider, model and key, so two fallbacks on the same provider and model with different keys both stay in the chain. Auto-appended healthy fallbacks are still deduplicated on provider and model, and a fallback that repeats the primary attempt (same provider, model and effective key) is dropped. Docs
🌎 Open Source Features
- Pinned Keys on Routing Fallbacks - Each routing-rule fallback can pin a provider key via
key_id, orprovider_key_namein config.json, and the rule editor lets you pick or clear a key per fallback. Unpinned fallbacks keep theprovider/modelstring form, so existing rules keep their config hash. Docs - OpenAI Async Tool Execution - The
asyncflag on Responses tools and tool calls,output_schemaon function tools andtunnel_idon MCP tools are forwarded to OpenAI.asyncis stripped for models without support, and the datasheetsupports_async_toolsfield can override this. - GPT-6 Prompt Cache Breakpoints - Prompt-cache breakpoints now cover the GPT-6 family on OpenAI, Azure, Bedrock and Bedrock Mantle. The datasheet
supports_prompt_cache_breakpointfield can override this. - GPT-6 Sol and Luna Reasoning Off -
reasoning.effort: "none"is forwarded forgpt-6-solandgpt-6-luna. Other GPT-6 models keep reasoning on.
🐞 Fixed
- Health-Aware Session Affinity Route Matching - A session’s route binding is followed only when the chain offers the same provider and model. A binding for the same provider on a different model is dropped as stale, and the drop is logged with the full provider and model.
- OpenAI Sampling Parameters on Reasoning Models (OSS) -
temperature,top_logprobsandlogprobsare stripped alongsidetop_pwhen the model and effort do not support them; an omittedreasoning.effortcounts asnoneonly for models that default to no reasoning. - Responses API Wire Shapes (OSS) - Structured MCP tool-call errors, object-form
conversation, array-form MCPallowed_tools,approval_request_idon MCP approval responses, andin/ninfile search filters now decode and re-encode correctly. Go SDK callers:ResponsesMCPApprovalResponse.ApprovalResponseIDis nowApprovalRequestID, andResponsesToolMessage.ErrorandResponsesParameters.Conversationare now union types. - OpenRouter Anthropic Cache Breakpoints (OSS) - Anthropic models routed through OpenRouter keep their
cache_controlbreakpoints. - Session Affinity with Pinned Keys (OSS) - When session affinity reorders the chain, a routing rule’s key pin moves with its provider.
- Session Affinity Route Matching (OSS) - A session’s route is matched on provider and model together, and bindings the request followed into a failure are dropped.
- Databricks Gemini System Prompts (OSS) - Multiple system and developer messages are merged into one for Gemini models on Databricks.
- Bedrock Encrypted Reasoning Replay (OSS) - Bedrock’s “encrypted reasoning was created for a different account or model” error now triggers the strip-and-retry path.
- Decisions on Bedrock Mantle (OSS) - Decision emulation sends
tool_choice: "auto"for gpt-oss models on Bedrock Mantle, and leaked parameter tags with surrounding whitespace are recovered. - Gemini Transcription Usage (OSS) - Usage is reported even when the transcript is empty.
- Routing Rule Enabled State (OSS) - Syncing or updating a routing rule that omits
enabledkeeps the stored value instead of writing NULL. - Telemetry User Labels Toggle (OSS) -
user_labels_enabledis now saved with the telemetry config.
📀 Base OSS version
transports/v2.2.3 (pinned as github.com/maximhq/bifrost/transports v1.6.12-0.20260924184142-ca3c81e26eed), with core v1.10.3, framework v1.7.4, governance v1.8.3, and logging v1.8.3.
