---
title: "v1.4.0-prerelease1"
description: "v1.4.0-prerelease1 changelog - 2025-12-29"
---
```bash
npx -y @maximhq/bifrost --transport-version v1.4.0-prerelease1
```
```bash
docker pull maximhq/bifrost:v1.4.0-prerelease1
docker run -p 8080:8080 maximhq/bifrost:v1.4.0-prerelease1
```
- refactor: governance plugin refactored for extensibility and optimization
- feat: new MCP gateway (server including) along with code mode
- feat: added health monitoring to mcp
- feat: added responses format tool execution support to mcp
- feat: new e2e tracing
- fix: gemini thought signature handling in multi-turn conversations
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor removed, replaced with HTTPTransportMiddleware**
The `TransportInterceptor` function has been removed from the plugin interface. Plugins using HTTP transport interception must migrate to `HTTPTransportMiddleware`.
**Migration summary:**
```
// v1.3.x (removed)
TransportInterceptor(ctx *BifrostContext, url string, headers map[string]string, body map[string]any) (map[string]string, map[string]any, error)
// v1.4.x+ (new)
HTTPTransportMiddleware() BifrostHTTPMiddleware
// where BifrostHTTPMiddleware = func(next fasthttp.RequestHandler) fasthttp.RequestHandler
```
**Key API changes:**
- Function renamed: `TransportInterceptor` -> `HTTPTransportMiddleware`
- Signature changed: Now returns a middleware wrapper instead of accepting/returning header/body maps
- Added dependency: Requires `github.com/valyala/fasthttp` import
- Flow control: Must explicitly call `next(ctx)` to continue the chain
See [Plugin Migration Guide](/plugins/migration-guide) for complete migration instructions and code examples.
- feat: added code mode to mcp
- feat: added health monitoring to mcp
- feat: added responses format tool execution support to mcp
- feat: adds central tracer for e2e tracing
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor removed, replaced with HTTPTransportMiddleware**
The `TransportInterceptor` method has been removed from the `Plugin` interface in `schemas/plugin.go`. All plugins must now implement `HTTPTransportMiddleware()` instead.
**Old API (removed in core v1.3.0):**
```go
TransportInterceptor(ctx *BifrostContext, url string, headers map[string]string, body map[string]any) (map[string]string, map[string]any, error)
```
**New API (core v1.3.0+):**
```go
HTTPTransportMiddleware() BifrostHTTPMiddleware
// where BifrostHTTPMiddleware = func(next fasthttp.RequestHandler) fasthttp.RequestHandler
```
**Key changes:**
- Method renamed: `TransportInterceptor` -> `HTTPTransportMiddleware`
- Return type changed: Now returns a middleware function instead of modified headers/body
- New import required: `github.com/valyala/fasthttp`
- Flow control: Must call `next(ctx)` explicitly to continue the middleware chain
- New capability: Can now intercept and modify responses (not just requests)
**Migration for plugin consumers:**
1. Update your plugin to implement `HTTPTransportMiddleware()` instead of `TransportInterceptor()`
2. If your plugin doesn't need HTTP transport interception, return `nil` from `HTTPTransportMiddleware()`
3. Update tests to verify the new middleware signature
See [Plugin Migration Guide](/plugins/migration-guide) for complete instructions and code examples.
- feat: adds new tracing framework for allowing plugins to enable e2e tracing
### BREAKING CHANGES
- **DynamicPlugin: TransportInterceptor replaced with HTTPTransportMiddleware**
The `DynamicPlugin` loader now expects plugins to export `HTTPTransportMiddleware` instead of `TransportInterceptor`.
**Old symbol lookup (removed in framework v1.2.0):**
```go
plugin.Lookup("TransportInterceptor")
// Expected: func(ctx *BifrostContext, url string, headers map[string]string, body map[string]any) (map[string]string, map[string]any, error)
```
**New symbol lookup (framework v1.2.0+):**
```go
plugin.Lookup("HTTPTransportMiddleware")
// Expected: func() BifrostHTTPMiddleware
```
**Impact on dynamic plugins (.so files):**
- Plugins compiled for core v1.2.x will fail to load with error: `plugin: symbol HTTPTransportMiddleware not found`
- Recompile all dynamic plugins against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for migration instructions.
- refactor: extracted governance store into an interface for extensibility
- refactor: extended the way governance store handles rate limits
- chore: added e2e tests for governance plugin
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- feat: logging now uses central accumulator vs its own; reducing total memory consumption during runtime
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- feat: otel now uses central accumulator reducing the total amount of memory consumed in runtime
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.
- chore: upgraded versions of core to 1.3.0 and framework to 1.2.0
### BREAKING CHANGES
- **Plugin Interface: TransportInterceptor replaced with HTTPTransportMiddleware**
This plugin now implements `HTTPTransportMiddleware()` instead of `TransportInterceptor()` to comply with core v1.3.0.
**What changed:**
- Old: `TransportInterceptor(ctx, url, headers, body) (headers, body, error)`
- New: `HTTPTransportMiddleware() BifrostHTTPMiddleware`
**For plugin consumers:**
- If you import this plugin directly, no code changes are required
- If you extend this plugin, update your implementation to use `HTTPTransportMiddleware()`
- Recompile any code that depends on this plugin against core v1.3.0+ and framework v1.2.0+
See [Plugin Migration Guide](/plugins/migration-guide) for details.