- NPX
- Docker
✨ Features
- Runware Provider — Added Runware provider support, including image and video generation operations
- Runway Image Operations — Added Runway image generation operations
- Customer Attribution — Added
x-bf-customer-idandx-bf-customer-nameheader support for per-customer attribution - Enriched Model Listing —
list modelsnow returnsContextLength,MaxInputTokens,MaxOutputTokens,Architecture, andWebSearchpricing sourced from pricing entries - Streaming Pause/Resume — Added pause/resume flows for streaming calls
- Session Trace Grouping — Added
group_traces_by_sessionsupport to the OTEL/Datadog plugins - Root Span Content Toggle — Added a toggle to disable root-span content logging
- Password Policy — Added password-policy validation with inline error and sticky save button to the security view
- Error Sanitization — Internal error details (stack traces, SQL) are now sanitized before being sent to clients
- Cluster Discovery Env Refs — Added
env.VAR_NAMEsupport todns_namesin cluster discovery config - Server Logs Config — Added configurable server logging
- Bedrock Streaming Errors — Added
__typereturn for Bedrock errors in streaming paths - Secret References — Added typed
SecretVarenv/vault reference support (env.*,vault.*) across config and UI, replacingEnvVar
🐞 Fixed
- Streaming Memory — Reduced memory usage on streaming request/response paths
- Provider Config Sync —
allow_all_keysandblacklisted_modelsnow sync from theconfig.jsonsource of truth (thanks @acarpe!) (closes #4640) - Provider Keys Payload —
PUT /api/providers/{provider}no longer silently discardskeys/blocked-model edits (thanks @aeciolevy!) (closes #4648) - Custom Header Base URL — Fixed base-URL protocol handling when a custom header is set
- VK Quota Usage — Fixed the start time for virtual-key quota model usage
- Model Budgets — Fixed model budget attachment from virtual keys
- Structured Streaming Errors — Preserved structured errors for streaming plugin blocks
- Log Hygiene — Removed leaking request bodies from console logs
🐙 Closed GitHub Issues
- #2347 — MCP tool ordering is non-deterministic, breaking prefix-based prompt caching
- #3443 — Anthropic→OpenAI streaming tool_call deltas violate OpenAI spec on continuation chunks
- #4068 — Bedrock: mid-conversation system messages hoisted into top-level
systemblock break prompt caching - #4413 — OpenAI Responses streaming returns empty
error.messageon context_length_exceeded - #4460 — GLM-5.2
reasoning_effort“max” silently downgraded to “high” - #4496 — Frequent intermittent broken pipe / closed connection errors with vllm provider
- #4544 — Cerebras +
/anthropicendpoint fails after first turn with 400 provider API error - #4606 — Realtime socket request observability logs not recorded since v1.5.2
- #4608 — ResponsesMessage drops author/recipient/encrypted_content, breaking Codex multi_agent_v2 subagent spawning
- #4617 — idle-timeout timer goroutine can panic in
closeBodyStreamand crash the process - #4622 — Bedrock Converse document blocks with format xlsx/xls/doc/docx silently rewritten to pdf
- #4627 — Gemini video reference fields sent under
parameters - #4640 — provider config
key_ids:["*"]not synced toallow_all_keysfor existing virtual keys - #4648 —
PUT /api/providers/{provider}silently discardspayload.Keys
- feat: add Runware provider with image and video generation operations
- feat: add Runway image generation operations
- feat: add x-bf-customer-id and x-bf-customer-name header support
- feat: enrich list models response with ContextLength, MaxInputTokens, MaxOutputTokens, Architecture, and WebSearch pricing from pricing entries
- feat: add pause/resume flows for streaming calls
- feat: add OpenCode gateway providers (Go, Zen) (thanks @neta79!)
- feat: add advisor tool compatibility for Claude
- feat: add Mantle list models endpoint and OpenAI-compatible endpoint support
- feat: add typed SecretVar env/vault reference support (
env.*,vault.*) with store/resolve/remove hooks, replacing EnvVar - fix: streaming memory improvements
- fix: enrich Fireworks list models from config
- fix(bedrock): correct GLM-5 stop sequences and remove erroneous web search error
- fix(bedrock): broaden document file extension support (xlsx/xls/doc/docx) (closes #4622)
- fix(bedrock): preserve tool_result order to match parallel tool_use blocks (thanks @alexef!)
- fix(bedrock): inline mid-conversation system reminders to preserve prompt cache (thanks @mickgvirtu!) (closes #4068)
- fix(bedrock): set TTL in cache points
- fix: add GLM-5.2 to models supporting max reasoning effort (thanks @is911!) (closes #4460)
- fix: retry on stale connections (closes #4496)
- fix: drop assistant reasoning for Cerebras (closes #4544)
- fix(gemini): map video reference fields to instances (thanks @vojthor!) (closes #4627)
- fix: preserve request conversion for Gemini/Vertex batch requests
- fix: populate error message in OpenAI responses streaming error events (thanks @Purvi09!) (closes #4413)
- fix: preserve structured errors for streaming plugin blocks
- fix: accept object-valued tool-call arguments (e.g. tool_search_call) on the Responses API streaming path (thanks @devonpmack!)
- fix: add key pool filter
- fix: ctx panic fix for fasthttp
- fix: recover from closeBodyStream panic in idle-timeout timer goroutine (thanks @KamilDziemba!) (closes #4617)
- fix(responses): preserve author, recipient, encrypted_content in multi-agent items and message copies (thanks @Shaik-Sirajuddin!) (closes #4608)
- fix: anthropic tool call handling (thanks @rmarku!) (closes #3443)
- fix: commit routing-pinned key ID to reserved BifrostContextKeyAPIKeyID after PreRequestHook unblock
- fix: preserve extra_content on ChatAssistantMessageToolCall so provider-specific tool-call metadata (e.g. Gemini thought_signature) round-trips losslessly (thanks @nghodkicisco!)
- fix: surface Anthropic prompt-cache diagnostics (cache-diagnosis-2026-04-07 beta) via new CacheDiagnostics/CacheMissReason schema
- fix: deterministic MCP tool ordering for prompt cache stability (thanks @ahoblitz!) (closes #2347)
- feat: add global GORM vault callbacks with VaultPathKeyer interface and map[string]EnvVar support, replacing per-model BeforeSave/AfterDelete vault hooks
- feat: add typed SecretVar env/vault reference support (
env.*,vault.*), replacing EnvVar - feat: add configurable server logs
- fix: streaming memory improvements
- fix: include allow_all_keys and blacklisted_models in virtual key hash (closes #4640)
- fix: sync provider config allow_all_keys from config.json source of truth (thanks @acarpe!)
- fix: populate error message in OpenAI responses streaming error events (thanks @Purvi09!)
- fix: shift Add-column migrations to raw SQL
- fix: add responses_input_history fallback to hybrid logstore check for logs UI
- fix(responses): deep-copy author, recipient, encrypted_content in message copies (thanks @Shaik-Sirajuddin!)
- refactor: replace gorm DropColumn with dropColumnIfExists helper
- revert: TableVirtualKey.Value from SecretVar back to string, dropping env/vault reference support for virtual key values
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- feat: add x-bf-customer-id and x-bf-customer-name support
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- refactor: rename EnvVar to SecretVar
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- refactor: rename EnvVar to SecretVar
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- refactor: rename EnvVar to SecretVar
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- feat: add group_traces_by_session support
- feat: add root span content logging disable toggle
- feat: add typed SecretVar env/vault reference support
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- refactor: rename EnvVar to SecretVar
- chore: upgraded core to v1.6.0 and framework to v1.4.0
- refactor: rename EnvVar to SecretVar
- feat: add typed SecretVar env/vault reference support
- chore: upgraded core to v1.6.0 and framework to v1.4.0

