transports/v1.6.8

maximhq/bifrosttransports/v1.6.8Aug 5, 2026by akshaydeo

AI Summary

A significant transport update adding WebSocket proxying, improving error handling, and fixing Bedrock/SCIM integration issues.

Key Highlights

  • Added WebSocket Proxy Support
  • Added Configurable SCIM Buffer Sizes
  • Fixed Proactive SSE Disconnect Detection
  • Fixed Bedrock Header Signing Denylist
  • Fixed Bedrock Tool Ordering and `cache_control` translation

New Features

  • WebSocket Proxy Support
  • Configurable SCIM Buffer Sizes

Full Release Notes

## Bifrost HTTP Transport Release v1.6.8

## โœจ Features

- **WebSocket Proxy Support** โ€” Realtime and Responses WebSocket connections now route through the configured provider-level proxy (HTTP, SOCKS5, env-based) instead of always dialing direct
- **Configurable SCIM Buffer Sizes** โ€” Added `WithFasthttpBufferSizes` option to `HTTPClientFactory` so IdP token endpoints returning headers larger than the 4KB default no longer fail SCIM/OAuth clients

## ๐Ÿž Fixed

- **Proactive SSE Disconnect Detection** โ€” Moved SSE heartbeat handling into a shared structure so client disconnects during streaming are detected proactively instead of only when a producer loop attempts a write, fixing false-success logging on fast/bursty upstreams like Vertex
- **Closed Channel Panic on Stream Shutdown** โ€” Fixed a race where a heartbeat goroutine mid-send on `eventCh` at shutdown could panic with "send on closed channel"
- **Budget Pruning Crash with `config.json` Source of Truth** โ€” Tolerate `ErrNotFound` when pruning cascade-deleted budgets and configs, fixing a startup crash for API-created model configs absent from `config.json`
- **Bedrock Header Signing Denylist** โ€” Fixed credential isolation so caller headers stored for Anthropic OAuth passthrough are no longer forwarded to other providers, preventing SigV4 signature mismatches on Bedrock
- **Deterministic Bedrock Tool Ordering** โ€” Fixed non-deterministic tool ordering in `toolConfig` caused by map iteration, which was breaking Bedrock prompt-cache hits
- **Bedrock `cache_control` Translation** โ€” `cache_control` markers on Anthropic-format content blocks, system blocks, and tools are now correctly translated through the Bedrock invoke and Converse paths instead of being silently dropped
- **Bedrock Adaptive Thinking Fixes** โ€” Reasoning/thinking `max_tokens` validation errors now return HTTP 400 instead of 500; `tool.defer_loading` is gated on its own beta header; Nova2 web search and code execution tools handled correctly
- **Encrypted Reasoning Content Mismatch** โ€” Fixed a mismatch where replaying OpenAI Responses API reasoning items through the Anthropic surface minted a fresh item id while forwarding the original encrypted content, which OpenAI rejected
- **Bedrock Invoke Content Retention** โ€” Bedrock's InvokeModel route now correctly decodes Anthropic's type-discriminated image/tool_use/tool_result blocks instead of silently dropping them
- **Bedrock Document Message Placeholder** โ€” Messages containing a document block without accompanying text no longer get rejected by Bedrock's Converse API
- **VK Provider Bulk Replace** โ€” Virtual key provider config replacement is now a single bulk operation instead of per-provider round trips, fixing a hot-path slowdown at scale

## ๐Ÿ—„๏ธ Database Migrations

- No new database migrations in this release.

## ๐Ÿ™ Closed GitHub Issues

- [#5010](https://github.com/maximhq/bifrost/issues/5010) โ€” Server-side SSE keepalive (comment heartbeat) to keep long-idle streams alive through intermediaries
- [#5186](https://github.com/maximhq/bifrost/issues/5186) โ€” Anthropic-surface replay of OpenAI encrypted reasoning mints a fresh item id, OpenAI 400s with "Encrypted content item_id did not match the target item id"

## ๐Ÿ”ง Maintenance

- **Dependency Upgrades** โ€” Bumped core to v1.7.6, framework to v1.5.6, and governance to v1.6.10; all other plugins bumped to pick up the cascade (compat v0.1.32, jsonparser v1.5.33, logging v1.6.6, maxim v1.6.33, mocker v1.5.33, modelcatalogresolver v1.0.14, otel v1.4.5, prompts v1.0.33, semanticcache v1.5.33, telemetry v1.5.33)

### Installation

#### Docker
```bash
docker run -p 8080:8080 maximhq/bifrost:v1.6.8
```

#### Binary Download
```bash
npx @maximhq/bifrost --transport-version v1.6.8
```

### Docker Images
- **`maximhq/bifrost:v1.6.8`** - This specific version
- **`maximhq/bifrost:latest`** - Latest version (updated with this release)

---
_This release was automatically created with dependencies: core `v1.7.6`, framework `v1.5.6`. All plugins have been validated and updated._