Changelog
Release ontransports/v1.6.0. Adds Runware and Runway providers (image and video generation), streaming pause/resume, customer attribution via x-bf-customer-id / x-bf-customer-name, and typed SecretVar env references replacing EnvVar across config and UI.✨ Features
- Runware Provider - Added Runware as a supported provider, covering both image and video generation operations through the standard provider configuration. Connect it like any other provider via
config.jsonor the UI. Docs - Runway Provider - Added Runway image generation operations, so Runway can be routed and load-balanced alongside other image providers. Docs
- Customer Attribution - Added
x-bf-customer-idandx-bf-customer-namerequest headers so usage, cost, and traces can be attributed per end customer, in addition to the existing user, team, and business-unit dimensions. - Enriched Model Listing -
list modelsnow returnsContextLength,MaxInputTokens,MaxOutputTokens,Architecture, andWebSearchpricing sourced from the pricing catalog, so clients can size requests and estimate cost without a second lookup. - Streaming Pause/Resume - Added pause and resume flows for streaming calls, allowing an in-flight stream to be held and continued rather than torn down and restarted. Docs
- Session Trace Grouping - Added
group_traces_by_sessionto the OTEL and Datadog plugins so spans from the same session roll up under one trace, plus a toggle to disable root-span content logging for noisy or sensitive payloads. Docs - Password Policy - Added password-policy validation in the security view, with inline field errors and a sticky save button so policy violations are caught before submission.
- Error Sanitization - Internal error details such as stack traces and raw SQL are now sanitized before responses are returned to clients, preventing implementation details from leaking to callers.
- Cluster Discovery Env Refs - Added
env.VAR_NAMEsupport todns_namesin cluster discovery config, so peer addresses can be supplied from the environment instead of being hard-coded. - Server Logs Config - Added configurable server logging so log verbosity and output can be tuned per deployment.
- Bedrock Streaming Errors - Bedrock errors on streaming paths now carry the
__typefield, so clients receive a typed error instead of an opaque stream failure. - Secret References - Added typed
SecretVarreferences across config and UI, replacing the oldEnvVar. References currently resolve from environment variables (env.VAR_NAME); the typed form lets config declare where each secret comes from rather than inlining values.
🐞 Fixed
- Streaming Memory - Reduced memory usage on streaming request/response paths.
- Provider Config Sync -
allow_all_keysandblacklisted_modelsnow sync from theconfig.jsonsource of truth (closes #4640). - Provider Keys Payload -
PUT /api/providers/{provider}no longer silently discardskeys/ blocked-model edits (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 OSS Issues
Resolved upstream intransports/v1.6.0:- #2347 - MCP tool ordering is non-deterministic, breaking prefix-based prompt caching.
- #3443 - Anthropic to OpenAI streaming tool_call deltas violated the OpenAI spec on continuation chunks.
- #4068 - Bedrock: mid-conversation system messages hoisted into the top-level
systemblock broke prompt caching. - #4413 - OpenAI Responses streaming returned an empty
error.messageon context_length_exceeded. - #4460 - GLM-5.2
reasoning_effort“max” was silently downgraded to “high”. - #4496 - Frequent intermittent broken pipe / closed connection errors with the vllm provider.
- #4544 - Cerebras with the
/anthropicendpoint failed after the first turn with a 400 provider API error. - #4606 - Realtime socket request observability logs were not recorded since v1.5.2.
- #4608 - ResponsesMessage dropped author/recipient/encrypted_content, breaking Codex multi_agent_v2 subagent spawning.
- #4617 - Idle-timeout timer goroutine could panic in
closeBodyStreamand crash the process. - #4622 - Bedrock Converse document blocks with format xlsx/xls/doc/docx were silently rewritten to pdf.
- #4627 - Gemini video reference fields were sent under
parameters. - #4640 - Provider config
key_ids:["*"]was not synced toallow_all_keysfor existing virtual keys. - #4648 -
PUT /api/providers/{provider}silently discardedpayload.Keys.
📀 Base OSS version
transports/v1.6.0
