> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbifrost.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.6.0

> v1.6.0 changelog - 2026-06-25

<Tabs>
  <Tab title="NPX">
    ```bash theme={null}
    npx -y @maximhq/bifrost --transport-version v1.6.0
    ```
  </Tab>

  <Tab title="Docker">
    ```bash theme={null}
    docker pull maximhq/bifrost:v1.6.0
    docker run -p 8080:8080 maximhq/bifrost:v1.6.0
    ```
  </Tab>
</Tabs>

<Update label="Bifrost(HTTP)" description="1.6.0">
  ## ✨ 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-id` and `x-bf-customer-name` header support for per-customer attribution
  * **Enriched Model Listing** — `list models` now returns `ContextLength`, `MaxInputTokens`, `MaxOutputTokens`, `Architecture`, and `WebSearch` pricing sourced from pricing entries
  * **Streaming Pause/Resume** — Added pause/resume flows for streaming calls
  * **Session Trace Grouping** — Added `group_traces_by_session` support 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_NAME` support to `dns_names` in cluster discovery config
  * **Server Logs Config** — Added configurable server logging
  * **Bedrock Streaming Errors** — Added `__type` return for Bedrock errors in streaming paths
  * **Secret References** — Added typed `SecretVar` env/vault reference support (`env.*`, `vault.*`) across config and UI, replacing `EnvVar`

  ## 🐞 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 (thanks [@acarpe](https://github.com/acarpe)!) (closes #4640)
  * **Provider Keys Payload** — `PUT /api/providers/{provider}` no longer silently discards `keys`/blocked-model edits (thanks [@aeciolevy](https://github.com/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](https://github.com/maximhq/bifrost/issues/2347) — MCP tool ordering is non-deterministic, breaking prefix-based prompt caching
  * [#3443](https://github.com/maximhq/bifrost/issues/3443) — Anthropic→OpenAI streaming tool\_call deltas violate OpenAI spec on continuation chunks
  * [#4068](https://github.com/maximhq/bifrost/issues/4068) — Bedrock: mid-conversation system messages hoisted into top-level `system` block break prompt caching
  * [#4413](https://github.com/maximhq/bifrost/issues/4413) — OpenAI Responses streaming returns empty `error.message` on context\_length\_exceeded
  * [#4460](https://github.com/maximhq/bifrost/issues/4460) — GLM-5.2 `reasoning_effort` "max" silently downgraded to "high"
  * [#4496](https://github.com/maximhq/bifrost/issues/4496) — Frequent intermittent broken pipe / closed connection errors with vllm provider
  * [#4544](https://github.com/maximhq/bifrost/issues/4544) — Cerebras + `/anthropic` endpoint fails after first turn with 400 provider API error
  * [#4606](https://github.com/maximhq/bifrost/issues/4606) — Realtime socket request observability logs not recorded since v1.5.2
  * [#4608](https://github.com/maximhq/bifrost/issues/4608) — ResponsesMessage drops author/recipient/encrypted\_content, breaking Codex multi\_agent\_v2 subagent spawning
  * [#4617](https://github.com/maximhq/bifrost/issues/4617) — idle-timeout timer goroutine can panic in `closeBodyStream` and crash the process
  * [#4622](https://github.com/maximhq/bifrost/issues/4622) — Bedrock Converse document blocks with format xlsx/xls/doc/docx silently rewritten to pdf
  * [#4627](https://github.com/maximhq/bifrost/issues/4627) — Gemini video reference fields sent under `parameters`
  * [#4640](https://github.com/maximhq/bifrost/issues/4640) — provider config `key_ids:["*"]` not synced to `allow_all_keys` for existing virtual keys
  * [#4648](https://github.com/maximhq/bifrost/issues/4648) — `PUT /api/providers/{provider}` silently discards `payload.Keys`
</Update>

<Update label="Core" description="1.6.0">
  * 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](https://github.com/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](https://github.com/alexef)!)
  * fix(bedrock): inline mid-conversation system reminders to preserve prompt cache (thanks [@mickgvirtu](https://github.com/mickgvirtu)!) (closes #4068)
  * fix(bedrock): set TTL in cache points
  * fix: add GLM-5.2 to models supporting max reasoning effort (thanks [@is911](https://github.com/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](https://github.com/vojthor)!) (closes #4627)
  * fix: preserve request conversion for Gemini/Vertex batch requests
  * fix: populate error message in OpenAI responses streaming error events (thanks [@Purvi09](https://github.com/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](https://github.com/devonpmack)!)
  * fix: add key pool filter
  * fix: ctx panic fix for fasthttp
  * fix: recover from closeBodyStream panic in idle-timeout timer goroutine (thanks [@KamilDziemba](https://github.com/KamilDziemba)!) (closes #4617)
  * fix(responses): preserve author, recipient, encrypted\_content in multi-agent items and message copies (thanks [@Shaik-Sirajuddin](https://github.com/Shaik-Sirajuddin)!) (closes #4608)
  * fix: anthropic tool call handling (thanks [@rmarku](https://github.com/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](https://github.com/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](https://github.com/ahoblitz)!) (closes #2347)
</Update>

<Update label="Framework" description="1.4.0">
  * 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](https://github.com/acarpe)!)
  * fix: populate error message in OpenAI responses streaming error events (thanks [@Purvi09](https://github.com/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](https://github.com/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
</Update>

<Update label="compat" description="0.1.22">
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="governance" description="1.6.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
</Update>

<Update label="jsonparser" description="1.5.23">
  * refactor: rename EnvVar to SecretVar
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="logging" description="1.5.23">
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="maxim" description="1.6.23">
  * refactor: rename EnvVar to SecretVar
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="mocker" description="1.5.23">
  * refactor: rename EnvVar to SecretVar
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="modelcatalogresolver" description="1.0.4">
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="otel" description="1.3.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
</Update>

<Update label="prompts" description="1.0.23">
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="semanticcache" description="1.5.23">
  * refactor: rename EnvVar to SecretVar
  * chore: upgraded core to v1.6.0 and framework to v1.4.0
</Update>

<Update label="telemetry" description="1.5.23">
  * 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
</Update>
