Skip to main content
v1.5.0

Changelog

Release on transports/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.json or 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-id and x-bf-customer-name request 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 models now returns ContextLength, MaxInputTokens, MaxOutputTokens, Architecture, and WebSearch pricing 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_session to 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_NAME support to dns_names in 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 __type field, so clients receive a typed error instead of an opaque stream failure.
  • Secret Provider Support - Connect AWS Secrets Manager, GCP Secret Manager, or HashiCorp Vault so Bifrost can store and read from secrets manager. Docs
  • Generic OIDC Provider and SCIM Support - Added a standards-compliant OIDC provider (provider: "generic") for SSO and user provisioning with any OIDC-compliant IdP. Docs

🐞 Fixed

  • Streaming Memory - Reduced memory usage on streaming request/response paths.
  • Provider Config Sync - allow_all_keys and blacklisted_models now sync from the config.json source of truth (closes #4640).
  • Provider Keys Payload - PUT /api/providers/{provider} no longer silently discards keys / 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 in transports/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 system block broke prompt caching.
  • #4413 - OpenAI Responses streaming returned an empty error.message on 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 /anthropic endpoint 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 closeBodyStream and 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 to allow_all_keys for existing virtual keys.
  • #4648 - PUT /api/providers/{provider} silently discarded payload.Keys.

📀 Base OSS version

transports/v1.6.0

🔌 If you are compiling plugin against this release - use following deps