Skip to content

2.2.3 changelog - #7528

Merged
akshaydeo merged 1 commit into
mainfrom
09-24-2.2.3_changelog
Sep 24, 2026
Merged

akshaydeo merged 1 commit into
mainfrom
09-24-2.2.3_changelog

Conversation

@akshaydeo

@akshaydeo akshaydeo commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Releases core v1.10.2, framework v1.7.4, transports v2.2.3, and corresponding plugin patch versions. This release focuses on routing reliability, OpenAI Responses API correctness, and several provider-specific bug fixes.

Changes

  • Pinned provider keys on routing fallbacks — Each fallback in a routing rule can now specify a key_id or provider_key_name to pin a particular provider key. The framework's RoutingFallback type accepts either the legacy provider/model string or the new object form. Unpinned fallbacks are unchanged, preserving existing config hashes.
  • Session affinity correctness — Key pins now travel with their provider when session affinity reorders the chain. Route matching now requires both provider and model to match, and bindings that followed a request into a failure are dropped.
  • OpenAI async tools and Responses wire shapes — The async flag, output_schema, and tunnel_id are forwarded on Responses tool calls. async is stripped for models that do not support it via the supports_async_tools datasheet override. Structured MCP tool-call errors, object-form conversation, array-form allowed_tools, approval_request_id, and in/nin file search filters now round-trip correctly.

    Go SDK callers: ResponsesMCPApprovalResponse.ApprovalResponseID is now ApprovalRequestID, the message type is now mcp_approval_response, and ResponsesToolMessage.Error and ResponsesParameters.Conversation are now union types.

  • GPT-6 prompt cache breakpoints — Breakpoints are enabled for the GPT-6 family across OpenAI, Azure, Bedrock, and Bedrock Mantle, overridable via supports_prompt_cache_breakpoint.
  • GPT-6 Sol and Luna reasoning off — reasoning.effort: "none" is forwarded for gpt-6-sol and gpt-6-luna.
  • OpenAI reasoning model parameter stripping — temperature, top_logprobs, and logprobs are stripped alongside top_p when the model and effort do not support them. An omitted reasoning.effort counts as none only for models that default to no reasoning.
  • OpenRouter Anthropic cache breakpoints — cache_control breakpoints are preserved for Anthropic models routed through OpenRouter.
  • Databricks Gemini system prompts — Multiple system and developer messages are merged for Gemini models on Databricks, which reject more than one system prompt.
  • Bedrock encrypted reasoning retry — The cross-account or cross-model encrypted reasoning rejection is now treated as recoverable and triggers the strip-and-retry path.
  • Decisions on Bedrock Mantle — Decision emulation sends tool_choice: "auto" for gpt-oss models and recovers leaked parameter tags with surrounding whitespace.
  • Gemini transcription usage — Usage is reported even when the transcript is empty.
  • Routing rule enabled state — Syncing or updating a rule that omits enabled now preserves the stored value instead of writing NULL.
  • Telemetry user labels toggle — user_labels_enabled is now persisted with the telemetry config.
  • Semantic cache conversation forms — Both string and object forms of conversation are read for cache metadata.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

go test ./...
  • Confirm routing fallbacks with a key_id pin route to the correct provider key.
  • Confirm session affinity routes match on provider and model together and that key pins follow provider reordering.
  • Confirm async, output_schema, and tunnel_id are forwarded on Responses tool calls to OpenAI and stripped for unsupported models.
  • Confirm cache_control breakpoints are preserved for Anthropic models via OpenRouter.
  • Confirm temperature, top_logprobs, and logprobs are stripped for OpenAI reasoning models when effort does not support them.
  • Confirm Gemini transcription usage is reported on empty transcripts.
  • Confirm updating a routing rule without enabled does not overwrite the stored value.

Breaking changes

  • Yes
  • No

Go SDK callers using ResponsesMCPApprovalResponse.ApprovalResponseID must rename it to ApprovalRequestID. The message type is now mcp_approval_response. ResponsesToolMessage.Error and ResponsesParameters.Conversation are now union types instead of *string.

Related issues

#7470, #7242, #7240, #7492, #7239, #7241, #7521, #7468, #7473, #7461, #7490, #7379, #7380, #7381

Security considerations

None beyond the existing provider credential handling. Pinned key IDs are resolved through the existing key-access control path.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@akshaydeo
akshaydeo marked this pull request as ready for review September 24, 2026 14:41

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: maximhq/bifrost/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 6737c7c5-d23d-4158-bb5c-586e71a183cf

📥 Commits

Reviewing files that changed from the base of the PR and between 21d6f15 and 37c4b17.

📒 Files selected for processing (30)
  • core/changelog.md
  • core/version
  • framework/changelog.md
  • framework/version
  • plugins/compat/changelog.md
  • plugins/compat/version
  • plugins/governance/changelog.md
  • plugins/governance/version
  • plugins/jsonparser/changelog.md
  • plugins/jsonparser/version
  • plugins/logging/changelog.md
  • plugins/logging/version
  • plugins/maxim/changelog.md
  • plugins/maxim/version
  • plugins/mocker/changelog.md
  • plugins/mocker/version
  • plugins/modelcatalogresolver/changelog.md
  • plugins/modelcatalogresolver/version
  • plugins/otel/changelog.md
  • plugins/otel/version
  • plugins/prompts/changelog.md
  • plugins/prompts/version
  • plugins/routing/changelog.md
  • plugins/routing/version
  • plugins/semanticcache/changelog.md
  • plugins/semanticcache/version
  • plugins/telemetry/changelog.md
  • plugins/telemetry/version
  • transports/changelog.md
  • transports/version

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Summary

Summary by CodeRabbit

  • New Features
    • Routing fallbacks can now use a pinned provider key.
    • OpenAI Responses support expanded with asynchronous tools and output schemas. GPT-6 prompt caching and reasoning controls are also supported.
  • Bug Fixes
    • Improved compatibility and reliability across OpenAI, Anthropic, Gemini, and Bedrock, including model-specific parameter handling, caching, reasoning, and usage reporting.
    • Fixed session-affinity routing and preserved routing-rule settings when updates omit them.

Walkthrough

This release updates changelogs and version values for core, framework, plugins, and transports. The transport changelog lists routing, provider, Responses, and telemetry changes, and states that no database migrations were added.

Changes

Release updates

Layer / File(s) Summary
Core and framework release records
core/changelog.md, core/version, framework/changelog.md, framework/version
The changelogs record core and framework changes. Core changes to v1.10.2, and framework changes to v1.7.4.
Plugin release records
plugins/*/changelog.md, plugins/*/version
Plugin changelogs record core and framework upgrades. Plugin version values are incremented.
Transport release notes and version
transports/changelog.md, transports/version
The changelog lists v2.2.3 features and fixes and states that no database migrations were added. The transport version changes to v2.2.3.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Suggested reviewers: pratham-mishra04

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The linked objective for issue #123 concerns file API support, but the described release and changelog changes do not address that objective or explain the relationship. Remove issue #123 from the linked objectives if it is unrelated, or explain how this PR addresses file API support. Add explicit issue links or closure references where applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Title check ✅ Passed The title is concise and accurately identifies the primary change: the 2.2.3 changelog release.
Description check ✅ Passed The description follows the required template and provides release scope, changes, testing guidance, breaking changes, affected areas, and security information. Some checklist items remain unchecked, …
Out of Scope Changes check ✅ Passed The changed files are limited to changelogs and version metadata, which matches the stated 2.2.3 release and changelog scope.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@akshaydeo
akshaydeo merged commit ed2adac into main Sep 24, 2026
15 checks passed
@akshaydeo
akshaydeo deleted the 09-24-2.2.3_changelog branch September 24, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant