- NPX
- Docker
2.2.3
✨ Features
- Pinned Keys on Routing Fallbacks - Each routing-rule fallback can pin a provider key via
key_id, orprovider_key_namein config.json. The UI rule editor lets you pick or clear a key per fallback. Unpinned fallbacks keep the legacyprovider/modelstring, so existing rules keep their config hash (#7470, #7379, #7380, #7381) - OpenAI Async Tool Execution - The
asyncflag on Responses tools and tool calls,output_schemaon function tools andtunnel_idon MCP tools are now forwarded to OpenAI.asyncis stripped for models without support, and the datasheetsupports_async_toolsfield can override this (#7242) - 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 (#7240) - GPT-6 Sol and Luna Reasoning Off -
reasoning.effort: "none"is forwarded forgpt-6-solandgpt-6-luna. Other GPT-6 models keep reasoning on (#7492)
🐞 Fixed
- OpenAI Sampling Parameters on Reasoning Models -
temperature,top_logprobsandlogprobsare now stripped alongsidetop_pon chat and Responses when the model and effort do not support them. An omittedreasoning.effortnow counts asnoneonly for models that default to no reasoning (#7239) - Responses API Wire Shapes - 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 (#7241) - OpenRouter Anthropic Cache Breakpoints - Anthropic models routed through OpenRouter now keep their
cache_controlbreakpoints, based on the model capability (#7521) - Session Affinity with Pinned Keys - When session affinity reorders the chain, a routing rule’s key pin now moves with its provider, so the pinned key is never looked up under the wrong provider (#7468)
- Session Affinity Route Matching - A session’s route is now matched on provider and model together. Bindings the request followed into a failure are dropped (#7473)
- Databricks Gemini System Prompts - Multiple system and developer messages are merged into one for Gemini models hosted on Databricks, which reject more than one system prompt (#7461)
- Bedrock Encrypted Reasoning Replay - Bedrock’s “encrypted reasoning was created for a different account or model” error now triggers the strip-and-retry path for unverifiable reasoning
- Decisions on Bedrock Mantle - Decision emulation now sends
tool_choice: "auto"for gpt-oss models on Bedrock Mantle, which reject"required". Leaked parameter tags with surrounding whitespace are now recovered - Gemini Transcription Usage - Usage is reported even when the transcript is empty
- Routing Rule Enabled State - Syncing or updating a routing rule that omits
enabledkeeps the stored value, where it used to write NULL - Telemetry User Labels Toggle -
user_labels_enabledis now saved with the telemetry config (#7490)
🗄️ Database Migrations
- No new database migrations in this release.
1.10.2
- feat: pinned provider keys on routing fallbacks via key_id on each fallback (#7470)
- feat: forward OpenAI async tools, output_schema and tunnel_id on Responses, stripping async for unsupported models with a SupportsAsyncTools datasheet override (#7242)
- feat: prompt-cache breakpoints for the GPT-6 family with a SupportsPromptCacheBreakpoint datasheet override (#7240)
- feat: reasoning effort none for gpt-6-sol and gpt-6-luna (#7492)
- fix: strip unsupported temperature, top_logprobs and logprobs alongside top_p for OpenAI reasoning models, and count an omitted effort as none only for models that default to no reasoning (#7239)
- fix: Responses wire shapes for structured MCP tool errors, object-form conversation, array-form MCP allowed_tools, approval_request_id and in/nin file search filters (#7241)
- fix: keep cache_control breakpoints for Anthropic models routed through OpenRouter (#7521)
- fix: move routing key pins with their provider when session affinity reorders the chain (#7468)
- fix: match session affinity routes on provider and model together, and drop bindings the request followed into a failure (#7473)
- fix: merge multiple system and developer messages for Databricks-hosted Gemini models (#7461)
- fix: treat Bedrock’s cross-account or cross-model encrypted reasoning rejection as recoverable and retry without it
- fix: decision emulation uses tool_choice auto for gpt-oss on Bedrock Mantle, and recovers leaked parameter tags with surrounding whitespace
- fix: report Gemini transcription usage even when the transcript is empty
1.7.4
- feat: RoutingFallback type accepting the legacy provider/model string or an object with a pinned key_id or provider_key_name (#7470)
- fix: keep a routing rule’s stored enabled value when an update or config sync omits it
- fix: deep copy the async flag and union tool error in streaming Responses messages (#7241, #7242)
- chore: upgraded core to v1.10.2
0.3.3
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.8.3
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.6.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.8.3
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.7.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.6.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.1.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.5.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.1.6
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.1.3
- feat: honor pinned provider keys on routing-rule fallbacks (#7470)
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.6.6
- fix: read both string and object forms of conversation for cache metadata (#7241)
- chore: upgraded core to v1.10.2 and framework to v1.7.4
1.8.2
- fix: persist user_labels_enabled with the telemetry config (#7490)
- chore: upgraded core to v1.10.2 and framework to v1.7.4

