---
title: "v1.4.0-prerelease1"
description: "v1.4.0-prerelease1 changelog - 2025-12-29"
---
<Tabs>
  <Tab title="NPX">
    ```bash
    npx -y @maximhq/bifrost --transport-version v1.4.0-prerelease1
    ```
  </Tab>
  <Tab title="Docker">
    ```bash
    docker pull maximhq/bifrost:v1.4.0-prerelease1
    docker run -p 8080:8080 maximhq/bifrost:v1.4.0-prerelease1
    ```
  </Tab>
</Tabs>

<Update label="Bifrost(HTTP)" description="1.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.

</Update>
<Update label="Core" description="1.3.0">
- 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.

</Update>
<Update label="Framework" description="1.2.0">
- 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.

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

</Update>
<Update label="jsonparser" description="1.4.0">
- 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.

</Update>
<Update label="logging" description="1.4.0">
- 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.

</Update>
<Update label="maxim" description="1.5.0">
- 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.

</Update>
<Update label="mocker" description="1.4.0">
- 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.

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

</Update>
<Update label="semantic_cache" description="1.4.0">
- 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.

</Update>
<Update label="telemetry" description="1.4.0">
- 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.

</Update>
