ent-v2.1.0-base
maximhq/bifrostent-v2.1.0-baseSep 8, 2026by akshaydeo
AI Summary
This release introduces significant enhancements to governance controls, including virtual key rotation cooldowns and MCP server architecture refactoring. It also adds new logging capabilities for request ID tracking and webhook delivery history, alongside UI improvements for model management and deployment descriptions.
Key Highlights
- Added rotation grace-period columns and `vk_rotation_cooldown` client config setting for better virtual key lifecycle management.
- Refactored MCP server architecture from per-VK maps to a single atomic server to unify tool-access scoping and authentication.
- Introduced request ID search filters and a dedicated webhook deliveries page for tracking and redelivery.
- Enhanced UI with canonical model name fallbacks and improved deployment descriptions for Replicate.
- Added Baseten to Hugging Face inference providers and accepted model arrays from OpenAI-compatible APIs.
Breaking Changes
- Renamed `AllowOnAllVirtualKeys` to `AllowByDefault` across schema, store, API, and UI. While backward-compatible wire aliases are provided for JSON keys and query params, existing configurations using the old name will need updating.
New Features
- Virtual key rotation grace-period and cooldown configurations
- Per-request identity and limits grant implementation
- Request ID exact PK lookup and search mode in logs
- Webhook deliveries page with filtering, pagination, and redelivery
- Fallback UI for AP-managed VK creation
- Canonical model name display with fallbacks
- Baseten inference provider support
Full Release Notes
## What's Changed * feat: add fallback UI for vk creation page for AP-managed VKs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6618 * docs: update AP constraints for user created vks by @roroghost17 in https://github.com/maximhq/bifrost/pull/6619 * fix(ui): make `use_deployments_endpoint` optional, improve Replicate deployment descriptions, and add form error logging by @impoiler in https://github.com/maximhq/bifrost/pull/6596 * feat(ui): display canonical model name with fallback to model in logs columns by @impoiler in https://github.com/maximhq/bifrost/pull/6602 * feat(ui): add `RawJsonUnavailableNotice` explaining disabled raw storage in log detail Raw JSON tab by @impoiler in https://github.com/maximhq/bifrost/pull/6608 * fix(ui): use server-computed flag as sole source of truth for managed VK state and add tooltip to disabled active switch by @impoiler in https://github.com/maximhq/bifrost/pull/6610 * fix(configstore): preserve `created_at` on routing rule update and sync by @impoiler in https://github.com/maximhq/bifrost/pull/6616 * fix: realtime / ws responses adds llm.call spans by @roroghost17 in https://github.com/maximhq/bifrost/pull/6592 * fix: routing-rule reads honor the row-visibility queryscope by @akshaydeo in https://github.com/maximhq/bifrost/pull/6638 * feat: add rotation grace-period columns to governance_virtual_keys by @akshaydeo in https://github.com/maximhq/bifrost/pull/5437 * feat: add vk_rotation_cooldown client config setting by @akshaydeo in https://github.com/maximhq/bifrost/pull/5438 * feat: honor rotation grace-period previous value in governance auth by @akshaydeo in https://github.com/maximhq/bifrost/pull/5439 * feat: apply rotation cooldown in the virtual key rotate endpoints by @akshaydeo in https://github.com/maximhq/bifrost/pull/5440 * feat: reconcile config.json virtual key values against rotation state by @akshaydeo in https://github.com/maximhq/bifrost/pull/5441 * feat: virtual key rotation cooldown UI and OpenAPI docs by @akshaydeo in https://github.com/maximhq/bifrost/pull/5442 * updated sheet design by @akshaydeo in https://github.com/maximhq/bifrost/pull/6651 * docs fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6677 * feat: add grant implementation for per-request identity, access, and limits by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6306 * test: add unit tests for `EffectiveAccess`, `Grant`, context propagation, and `uniqueEntries` in the `grants` package by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6307 * feat: settle request identity onto a grant at context conversion, recording credential and user from headers, middleware context values, MCP JWT, ephemeral keys, and WebSocket upgrade by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6641 * feat: wire up grant creation in governance by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6308 * refactor: replace VK-specific provider filter with `ResolveEffectiveAccess` on model listing routes so governance-resolved access narrows the fan-out instead of raw DB rows by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6309 * feat: add `split-commit-into-stack` Claude skill for analyzing, partitioning, and proving stacked Graphite PRs by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6310 * refactor: unify governance limit assembly, enforcement, and billing onto a single resolved access so checked, recorded, and charged sets cannot diverge by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6311 * refactor: replace `fieldset[disabled/inert]` managed-profile guard with conditional render and update access-profile alert copy by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6312 * refactor: replace `*TableVirtualKey` in routing rule evaluation with a `GovernanceScope` struct read off the resolved access context, eliminating a duplicate credential walk by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6313 * feat: add `GetMCPClientNames` to `InMemoryStore` for full client ID→name mapping across governance and config layers by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6314 * feat: rename `AllowOnAllVirtualKeys` to `AllowByDefault` across schema, store, API, and UI, with backward-compatible wire aliases for both JSON keys and query params by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6642 * refactor: replace per-VK MCP server map with a single atomic server, moving tool-access scoping from server selection to governance admission via `MCPGatewayAdmitter`, and unify `/mcp` auth into `authenticate`/`admit` with status-mapped refusals by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6643 * fix: mark internal MCP health-check/admin-verify contexts with `BifrostContextKeyMCPHealthCheckRequest`, thread grant through foreign context wrappers via `bifrostContextSelfKey`, suppress governance warn→debug for grantless probes, hide profile-owned VK by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6649 * fix: drop legacy FK constraints on `oauth_user_tokens`/`oauth_user_sessions` blocking `DeleteMCPClientConfig` after token-table merge, with `-:migration` struct tags and regression tests by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6648 * chore: rename `virtual_key_not_found`/`virtual_key_blocked` error codes to `access_not_found`/`access_blocked` in e2e test assertions by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6678 * perf: add focused usage snapshot by @danpiths in https://github.com/maximhq/bifrost/pull/6683 * community: add Magic Hour to MCP library by @runshouse in https://github.com/maximhq/bifrost/pull/6691 * fix: propagate grant from submit context into async job's background context via explicit `SetGrant` call by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6701 * fix: revert `ResolveAccess` side-effect in `PreMCPConnectionHook` with direct VK lookup to populate identity context keys by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6706 * codeql fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6696 * feat(logstore): add `request_id` exact PK lookup filter, bypassing time-range constraints by @impoiler in https://github.com/maximhq/bifrost/pull/6694 * feat(ui): add request ID search mode to logs with UUID auto-detection, `id:` prefix support, and ID badge by @impoiler in https://github.com/maximhq/bifrost/pull/6695 * refactor(ui): extract shared filter primitives and webhook delivery utils into dedicated modules by @impoiler in https://github.com/maximhq/bifrost/pull/6707 * feat(logstore): add cross-endpoint `GET /api/webhooks/deliveries` search with filterable delivery history by @impoiler in https://github.com/maximhq/bifrost/pull/6708 * feat(ui): add webhook deliveries page with filtering, pagination, and redelivery by @impoiler in https://github.com/maximhq/bifrost/pull/6709 * feat(ui): add fleet-wide webhook deliveries page with cross-endpoint filtering and replace sheet pagination with preview link by @impoiler in https://github.com/maximhq/bifrost/pull/6710 * feat(ui): replace in-page back button on webhook deliveries with topbar breadcrumb trail by @impoiler in https://github.com/maximhq/bifrost/pull/6714 * feat(logs): add compare_to_previous to GET /api/logs/stats by @akshaydeo in https://github.com/maximhq/bifrost/pull/6719 * feat(logs): replace the metric cards with the segmented strip by @akshaydeo in https://github.com/maximhq/bifrost/pull/6720 * [feat]: add Baseten to Hugging Face inference providers by @nicolastoulemont in https://github.com/maximhq/bifrost/pull/6633 * genai signature drop fix by @akshaydeo in https://github.com/maximhq/bifrost/pull/6745 * [fix]: Accept model arrays from OpenAI-compatible APIs by @dani29 in https://github.com/maximhq/bifrost/pull/6712 * [fix]: marshal required nullable response fields by @PSR94 in https://github.com/maximhq/bifrost/pull/6723 * fix: pass mime type in file responses by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6684 * fix: send rerank documents as Cohere v2 strings, not objects by @AdityaPainuli in https://github.com/maximhq/bifrost/pull/6654 * fix: output resolution costing for video requests by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6672 * fix: jobaccounting package migration by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6673 * fix: update table batch job to provider job by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6674 * feat: video costs wired in job accounting by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6675 * fix: video debug in logs and retry fix in polling by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6728 * mcp auth with ssrf checks by @akshaydeo in https://github.com/maximhq/bifrost/pull/6757 * tests: files api harness tests by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6765 * require auth for realtime connections when enforced on inference by @akshaydeo in https://github.com/maximhq/bifrost/pull/6759 * block Teredo addresses in the dial-time SSRF guard by @akshaydeo in https://github.com/maximhq/bifrost/pull/6760 * scope prompt child reads and writes to their parent prompt by @akshaydeo in https://github.com/maximhq/bifrost/pull/6761 * fix: bedrock models routing to converse by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6655 * enterprise release notes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6771 * feat(anthropic): synthesize missing terminal text suffix from output_text.done by @Madhuvod in https://github.com/maximhq/bifrost/pull/6159 * feat(integrations): support native raw request redaction by @Madhuvod in https://github.com/maximhq/bifrost/pull/6365 * feat(streaming): add RawStreamTextCodec and paused buffer transform for native SSE redaction by @Madhuvod in https://github.com/maximhq/bifrost/pull/6386 * helm+docs changes for the send_all_conversation_turns setting in guardrail rules by @Madhuvod in https://github.com/maximhq/bifrost/pull/6758 * feat: replace user-scoped model configs with extensible `ExtraScopedIDsResolver` and add `ManagedBy` field, read-only sheet, and `managed_by` API response by @BearTS in https://github.com/maximhq/bifrost/pull/6715 * feat: add `ReadOnlyNotice` component to model limit scope registry for customizable read-only alert messaging by @BearTS in https://github.com/maximhq/bifrost/pull/6733 * feat(quota): tag budgets/rate limits with their source, list every rate limit by @BearTS in https://github.com/maximhq/bifrost/pull/6752 * [fix]: ui - declare VKCreationPolicyResponse in the OSS access-profile fallback by @markdawson in https://github.com/maximhq/bifrost/pull/6776 * fix: remove score filter from redis by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6772 * fix: hex value fields in redis store by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6773 * fix: apply rate limits on model less passthrough requests by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6774 * feat(ui): audit virtual key reveal and copy events via enterprise hook with OSS no-op fallback by @impoiler in https://github.com/maximhq/bifrost/pull/6786 * fix(ui): replace hard-coded metric strip colours with theme tokens and stabilise strip height across loading states by @impoiler in https://github.com/maximhq/bifrost/pull/6788 * fix(ui): fix logs page layout on small screens with scrolling fallback and header wrap fixes by @impoiler in https://github.com/maximhq/bifrost/pull/6789 * feat: route azure deepseek responses requests to chat completions for coding harnesses and fall back for models lacking responses endpoint support for bedrock by @sammaji in https://github.com/maximhq/bifrost/pull/6326 * fix(ui): move sheet header padding from container to sticky header element across all sheets by @impoiler in https://github.com/maximhq/bifrost/pull/6790 * feat: add compat toggle to gate chat completions conversion for azure deepseek models by @sammaji in https://github.com/maximhq/bifrost/pull/6737 * fix: use max_tokens instead of max_completion tokens for ollama by @sammaji in https://github.com/maximhq/bifrost/pull/6607 * feat: add structured logging for compat plugin param drops and conversions by @sammaji in https://github.com/maximhq/bifrost/pull/6634 * fix: route Anthropic-on-Vertex passthrough usage and stream terminal detection through Anthropic parsers by @sammaji in https://github.com/maximhq/bifrost/pull/6639 * chore: adds vertex / azure / bedrock test cases to harness by @sammaji in https://github.com/maximhq/bifrost/pull/6738 * fix(configstore): preserve `created_at` across config sync for budget, rate limit, team, customer, model config, pricing override, and plugin by @impoiler in https://github.com/maximhq/bifrost/pull/6792 * fix(ui): pause background polling while edit sheets are open to prevent in-progress edits from being discarded by refetches by @impoiler in https://github.com/maximhq/bifrost/pull/6793 * fix: remove raw body passthrough if provider does not support output config format by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6798 * feat: add `SecretVar` config support and `ConfigMarshallerPlugin` interface to native `.so` plugins by @BearTS in https://github.com/maximhq/bifrost/pull/6600 * feat: add project dimension to governance context, log tables, filters, and permit evaluation with refusal when a named project goes unscoped by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6702 * feat: add Projects governance page with RBAC gating and sidebar entry by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6703 * feat: add `project` as a first-class filter, histogram, and ranking dimension across API, matview, and UI by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6704 * feat: add `project_id`/`project_name` governance dimensions to span attributes, enrichment dims, metrics labels, and log payloads by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6705 * refactor: move `gatherLimits` into `GovernanceStore.GatherLimits`, propagate settling errors as `DecisionAccessBlocked` after access checks, and split `modelConfigScopesFor` to one permit per call by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6724 * refactor: replace `[]string` fields on `ProviderPermit`/`MCPPermit`/`ProviderCandidate` with `schemas.WhiteList`/`schemas.BlackList` types, moving list semantics onto the types and deleting `lists.go` by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6725 * removes heartbeats from genai integration by @akshaydeo in https://github.com/maximhq/bifrost/pull/6804 * refactor: split `ProviderAndModelLimits` into `GlobalProviderLimits`, `GlobalModelLimits`, `PermitProviderLimits`, and `PermitModelLimits`, adding `ProviderScopedModelLimits` for load-balancing candidate exclusion by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6729 * feat: add `governance.projects` to config.json schema and docs with reconciliation semantics, budget/rate-limit fields, and enterprise-only exclusion in OSS tests by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6777 * feat: add `credential` block to `MCPClientResponse` with scopes and refresh-token presence, surface in server sheet and sessions table by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6780 * fix: remove plugin versioning field and adds hash-based merge logic by @sammaji in https://github.com/maximhq/bifrost/pull/6250 * chore: updates docs to remove plugin versioning by @sammaji in https://github.com/maximhq/bifrost/pull/6336 * chore: updates helm schema to remove plugin versioning by @sammaji in https://github.com/maximhq/bifrost/pull/6337 * feat: persist and display served model from provider response by @sammaji in https://github.com/maximhq/bifrost/pull/6693 * feat: record `MCPConnectionFailure` (stage, message, timestamps) on client state and credential rows, surfacing failure reason in client-list API and cluster node states by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6794 * feat: surface MCP connection failure details in state badge popover and server sheet, with shared `mcpConnectionFailure` utils, credential `status_reason`, and unified credential/session status badge palette by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6795 * docs: add `last_failure`/`node_states` fields to `MCPClient` schema and document connection-state failure reasons by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6796 * fix: propagate request grant into relay context and export `SettleIdentity` for WebSocket upgrade path so governance sees a settled identity on every turn by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6801 * feat(governance): add `ScopedModelLimits` for named-scope model limit lookup without a permit by @BearTS in https://github.com/maximhq/bifrost/pull/6800 * fix: resolve mcp client id before vault hooks are called via gorm by @BearTS in https://github.com/maximhq/bifrost/pull/6812 * fix: initialize new model budgets with empty array instead of default budget entry by @BearTS in https://github.com/maximhq/bifrost/pull/6813 * feat: add `ScopedModelConfigs` cache accessor and preserve budget `id` through model-budget edits in `ProviderConfigCard` by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6810 * feat: add log-level filtering to plugin and routing decision logs with shared `logLevel` utils, level badges, and `LogLevelTabs` component by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6811 * fix: anthropic stream truncation by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6805 * feat: add github-copilot provider by @akshaydeo in https://github.com/maximhq/bifrost/pull/6352 * feat(docs): add new providers (`bedrock_mantle`, `opencode-go`, `opencode-zen`, `runware`, `sarvam`, `wafer`) and alphabetize provider enums by @impoiler in https://github.com/maximhq/bifrost/pull/6664 * refactor: remove `counts` prop and `countAtOrAboveEachLevel` from `LogLevelTabs`, routing logs, and plugin logs by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6814 * [fix]: Bedrock provider - placeholder content block instead of null on empty assistant messages by @Jesse-Schultz-Relativity in https://github.com/maximhq/bifrost/pull/6732 * feat(providers): add Databricks provider with Model Serving and Unity AI Gateway support, PAT and OAuth M2M auth, and Gemini stream-options fixup by @impoiler in https://github.com/maximhq/bifrost/pull/6665 * feat(configstore): add Databricks key config persistence with DB columns, encryption, redaction, validation, and merge support by @impoiler in https://github.com/maximhq/bifrost/pull/6666 * feat(schema): add Databricks provider support with workspace URL, OAuth M2M, and AI Gateway routing config by @impoiler in https://github.com/maximhq/bifrost/pull/6667 * feat(ui): add Databricks provider with PAT and OAuth M2M auth, inference surface selector, and governance tag forwarding by @impoiler in https://github.com/maximhq/bifrost/pull/6668 * feat(providers): add Databricks as a supported provider with pricing catalog support and migration CLI exclusion by @impoiler in https://github.com/maximhq/bifrost/pull/6669 * feat(docs): add Databricks as a first-class provider with PAT and OAuth M2M auth, Model Serving and Unity AI Gateway surfaces, and config.json examples by @impoiler in https://github.com/maximhq/bifrost/pull/6670 * test(databricks): add provider harness coverage and CI secrets by @impoiler in https://github.com/maximhq/bifrost/pull/6671 * fix(databricks): surface the upstream error message on inference failures by @impoiler in https://github.com/maximhq/bifrost/pull/6676 * fix(ui): fix Databricks tab layout collapsing and OAuth M2M key validation after form reset by @impoiler in https://github.com/maximhq/bifrost/pull/6679 * feat(databricks): gate optional parameters on datasheet capabilities per model and drop Anthropic-native fields unconditionally by @impoiler in https://github.com/maximhq/bifrost/pull/6770 * feat(routing): three-tier complexity contracts, semantic config wire, and migrations by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6163 * feat(ui): remove provider governance table from model provider config view by @impoiler in https://github.com/maximhq/bifrost/pull/6820 * feat(routing): vector stores, chromem backend, and the semantic embedding executor by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6164 * feat(routing): semantic classifier runtime and harness-aware input extraction by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6165 * feat(routing): semantic classification on the request path, with logs, traces, and telemetry by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6166 * feat(routing): semantic router API surface and configuration UI by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6167 * docs(routing): semantic complexity router helm values, OpenAPI, and documentation by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6168 * fix(logstore): repair racy has_object waits and stale payload count in tests by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6176 * feat(routing): LLM classifier fallback for complexity routing by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6177 * docs(complexity): OpenAPI, Helm, and feature doc coverage for the LLM fallback classifier by @Madhuvod in https://github.com/maximhq/bifrost/pull/6282 * feat(complexity): session aware routing changes by @Madhuvod in https://github.com/maximhq/bifrost/pull/6317 * renaming cachedebug -> cachemetadata + guardrail, routingmetadaata at all places by @Madhuvod in https://github.com/maximhq/bifrost/pull/6722 * feat(complexity): enforce 750-phrase combined semantic limit with split-config merge guard and local Chromem cleanup fixes by @Madhuvod in https://github.com/maximhq/bifrost/pull/6727 * feat complexity: warm coordination and generation reclamation by @kohlivrinda in https://github.com/maximhq/bifrost/pull/6807 * fixes race conditions while closing the the streaming calls (fasthttp patch) by @akshaydeo in https://github.com/maximhq/bifrost/pull/6799 * release connections held by abandoned streams by @akshaydeo in https://github.com/maximhq/bifrost/pull/6802 * probe pool health after a cancelled stream in the harness by @akshaydeo in https://github.com/maximhq/bifrost/pull/6803 * feat: mint github-copilot tokens server-to-server by @akshaydeo in https://github.com/maximhq/bifrost/pull/6353 * feat: persist github-copilot app credentials by @akshaydeo in https://github.com/maximhq/bifrost/pull/6354 * feat: github-copilot provider form and constants by @akshaydeo in https://github.com/maximhq/bifrost/pull/6355 * test: wire github-copilot live scenarios and CI by @akshaydeo in https://github.com/maximhq/bifrost/pull/6356 * docs: github copilot provider by @akshaydeo in https://github.com/maximhq/bifrost/pull/6357 * feat: add virtual mcps servers compatibility by @roroghost17 in https://github.com/maximhq/bifrost/pull/6746 * fix: connectors test fixes by @roroghost17 in https://github.com/maximhq/bifrost/pull/6635 * feat: add vMCP CRUD support by @roroghost17 in https://github.com/maximhq/bifrost/pull/6747 * feat: add all converter's internal processing to individual span buckets by @roroghost17 in https://github.com/maximhq/bifrost/pull/6588 * docs: add overhead latency breakdown explanation page by @roroghost17 in https://github.com/maximhq/bifrost/pull/6637 * feat: add support for serving virtual MCPs at slug endpoints by @roroghost17 in https://github.com/maximhq/bifrost/pull/6748 * refactor: promote the MCP tool accumulator to a reusable component by @roroghost17 in https://github.com/maximhq/bifrost/pull/6749 * feat: add vk assignments list support to vmcps and fix whitelisting convention for tools by @roroghost17 in https://github.com/maximhq/bifrost/pull/6750 * feat: add virtual mcp UI by @roroghost17 in https://github.com/maximhq/bifrost/pull/6751 * feat: wire in endpoint support in direct MCP servers by @roroghost17 in https://github.com/maximhq/bifrost/pull/6791 * feat: add VMCP assignment into VK sheets by @roroghost17 in https://github.com/maximhq/bifrost/pull/6826 * feat: add `Allow all providers` option on vks by @roroghost17 in https://github.com/maximhq/bifrost/pull/6662 * feat: add `allow_all_providers` support in helm by @roroghost17 in https://github.com/maximhq/bifrost/pull/6663 * docs: add `Allow all providers` docs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6827 * dependabot updates by @akshaydeo in https://github.com/maximhq/bifrost/pull/6832 * feat: add multi-scope filter support for model configs with `filterUnderScope` registry field and comma-separated scope query param by @BearTS in https://github.com/maximhq/bifrost/pull/6829 * feat: add scopes filter in model config api by @BearTS in https://github.com/maximhq/bifrost/pull/6830 * faker patches for dependabot by @akshaydeo in https://github.com/maximhq/bifrost/pull/6835 * codeql fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6836 * fix: openai reasoning content in bedrock converse response by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6834 * pending fixes from dependabot by @akshaydeo in https://github.com/maximhq/bifrost/pull/6837 * feat(ui): prompt users to switch to first-party integration when custom provider name collides with a natively supported provider by @impoiler in https://github.com/maximhq/bifrost/pull/6845 * feat: add `ProviderScopedModelLimitsInScope` for named-scope provider-scoped model limits in load balancing by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6856 * refactor: extract `NarrowListModelsProviders` onto `BifrostHTTPServer` and thread `AccessResolver` into integration routers so all models listings share one fan-out narrowing rule by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6857 * feat: add `TruncatedBadge` component and `footer` prop to `EntitySelector` by @BearTS in https://github.com/maximhq/bifrost/pull/6843 * feat: replace `managed_by`/`Source` strings with structured `SourceRef` embedding across model configs and quota budgets by @BearTS in https://github.com/maximhq/bifrost/pull/6858 * fix: virtual key loading state and consistency by @roroghost17 in https://github.com/maximhq/bifrost/pull/6859 * fix(complexity): remove session xml tag check in cc and few complexity ui fixes by @Madhuvod in https://github.com/maximhq/bifrost/pull/6838 * complexity fixes + added session id in logs table so its filtering on llm logs by @Madhuvod in https://github.com/maximhq/bifrost/pull/6846 * feat: helm version release 2.1.38 with validation fix for `postgresql.external.passwordCommand` by @BearTS in https://github.com/maximhq/bifrost/pull/6861 * feat: add `VirtualKeyPruneGuard` to protect access-profile virtual keys from config.json reconciliation pruning by @BearTS in https://github.com/maximhq/bifrost/pull/6863 * complexity docs changes + openapi fix by @Madhuvod in https://github.com/maximhq/bifrost/pull/6865 * fix: restore explicit opt-in for Infisical secrets by @danpiths in https://github.com/maximhq/bifrost/pull/6866 * fix: encrypt rows one-per-transaction with cursor pagination and concurrent vault writes to prevent deadlocks and boot hangs by @sammaji in https://github.com/maximhq/bifrost/pull/6808 * chore: adds ui tooltip to show cached and uncached input tokens breakdown by @sammaji in https://github.com/maximhq/bifrost/pull/6833 * test: video accounting tests by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6839 * fix: helm chart to render the scim config as it is rather than not at all if enabled: false by @BearTS in https://github.com/maximhq/bifrost/pull/6869 * fix(ui): prevent logout 401 cascade by latching logout state, resetting API cache after navigation, and stopping WebSocket reconnection on sign-out by @impoiler in https://github.com/maximhq/bifrost/pull/6855 * feat(ui): add scope labels, `maxVisible` overflow, and `scopeLabel` prop to budget and rate limit displays by @impoiler in https://github.com/maximhq/bifrost/pull/6860 * fix: don't serve disabled MCP clients or stale virtual MCP defs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6872 * docs: add virtual mcp docs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6873 * docs: refactor mcp gateway docs to overview by @roroghost17 in https://github.com/maximhq/bifrost/pull/6874 * docs: add allow all providers changes by @roroghost17 in https://github.com/maximhq/bifrost/pull/6875 * feat(ui): add guided migration dialog for custom Databricks providers to the first-party Databricks provider by @impoiler in https://github.com/maximhq/bifrost/pull/6876 * handle azure providers for reasoning efforts by @akshaydeo in https://github.com/maximhq/bifrost/pull/6877 * chore: replace `FolderKanban` with `SquareKanban` icon and fix sidebar className indentation by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6878 * fix: skip custom provider in list models call if request not allowed by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6853 * fix: thinking block modification error by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6854 * [fix]: preserve GPT-6 Astra max reasoning effort by @nettee in https://github.com/maximhq/bifrost/pull/6881 * fix: add `min-w-0` to SCIM page wrapper div by @BearTS in https://github.com/maximhq/bifrost/pull/6871 * fix: map Anthropic forced tool choice any to required on OpenAI egress by @Atharva-Kanherkar in https://github.com/maximhq/bifrost/pull/6888 * feat: add `onSelect` callback support to breadcrumb for non-URL parent views by @BearTS in https://github.com/maximhq/bifrost/pull/6893 * openrouter prompt cache fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6692 * feat(core): synthesize prompt-cache breakpoints for clients that send none by @akshaydeo in https://github.com/maximhq/bifrost/pull/6697 * feat(logstore): add request-type visibility filtering by @impoiler in https://github.com/maximhq/bifrost/pull/6890 * test: cover the prompt-cache dispatch seam and reconcile the never-invent comment by @akshaydeo in https://github.com/maximhq/bifrost/pull/6698 * docs: add Projects enterprise feature with full configuration, access rules, accounting modes, and observability attribution by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6896 * feat(dashboard): hide configured request types from log reads by @impoiler in https://github.com/maximhq/bifrost/pull/6891 * feat: extend prompt-cache breakpoint translation to the gpt-5.6 family by @akshaydeo in https://github.com/maximhq/bifrost/pull/6699 * feat(helm): expose hidden request types and document configuration by @impoiler in https://github.com/maximhq/bifrost/pull/6892 * docs: add `virtual_mcps` to project schema, note API membership, and tighten wording from "grants" to "allows" by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6897 * docs: document auto-injected prompt cache breakpoints by @akshaydeo in https://github.com/maximhq/bifrost/pull/6700 * feat(ui): display hidden request types in logging config view by @impoiler in https://github.com/maximhq/bifrost/pull/6894 * test: cover the whole prompt-cache injection config surface in the harness by @akshaydeo in https://github.com/maximhq/bifrost/pull/6753 * feat(ui): hide unreleased `github-copilot` provider from the UI while preserving config.json rendering by @impoiler in https://github.com/maximhq/bifrost/pull/6895 * feat: document the Projects management API and project surface across the governance and logging specs by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6898 * docs: add throughput histograms, user rankings, and `/inspect` endpoint to OpenAPI spec and docs nav by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/6899 * conflict fix by @akshaydeo in https://github.com/maximhq/bifrost/pull/6909 * second conflict by @akshaydeo in https://github.com/maximhq/bifrost/pull/6910 * docs: replace business-unit team membership with user membership (M:N) and add user VK creation policy endpoint by @BearTS in https://github.com/maximhq/bifrost/pull/6906 * docs: add roles, business units, access profile mappings, and multi-profile docs across enterprise guides by @BearTS in https://github.com/maximhq/bifrost/pull/6907 * feat(logstore): add tool_call_names column and filter by @impoiler in https://github.com/maximhq/bifrost/pull/6911 * vk allowed models * handling for governance by @akshaydeo in https://github.com/maximhq/bifrost/pull/6767 * fix(logging): populate tool_calls and tool_call_names on log entries by @impoiler in https://github.com/maximhq/bifrost/pull/6912 * test(governance): cover MCP connect identity stamping by @akshaydeo in https://github.com/maximhq/bifrost/pull/6768 * feat(logs): add tool call names filter to the logs API and UI by @impoiler in https://github.com/maximhq/bifrost/pull/6913 * fix(logstore): make filterdata search case-insensitive across all backends by @impoiler in https://github.com/maximhq/bifrost/pull/6915 * fix: forced tool choice capability flag by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6903 * feat: add scheduled automatic virtual key rotation by @impoiler in https://github.com/maximhq/bifrost/pull/6806 * fix: delete stale routing rules in merge transaction before inserts to avoid priority collisions by @BearTS in https://github.com/maximhq/bifrost/pull/6934 * feat: config json and helm updates for virtual MCPs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6904 * docs: update docs for virtual mcps config json changes by @roroghost17 in https://github.com/maximhq/bifrost/pull/6905 * fix: preserve budget state across edits by @danpiths in https://github.com/maximhq/bifrost/pull/6932 * chore: add vMCP e2e tests by @roroghost17 in https://github.com/maximhq/bifrost/pull/6919 * feat: wire in tracing for async jobs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6939 * fix(ui): misc layout and styling fixes for providers, sheets, and classifier status badge by @impoiler in https://github.com/maximhq/bifrost/pull/6940 * feat: helm changes for projects, Databricks, access-profile mappings, and vk rotation cooldown by @BearTS in https://github.com/maximhq/bifrost/pull/6917 * fix: derive chat finish_reason from responses terminal state and incomplete details by @sammaji in https://github.com/maximhq/bifrost/pull/6901 * fix: populate summary_index, summary text, and signatures on reasoning_summary_* stream events for anthropic, bedrock, and gemini by @sammaji in https://github.com/maximhq/bifrost/pull/6902 * fix: normalize vertex genai resource model names to bare ids for governance and key selection by @sammaji in https://github.com/maximhq/bifrost/pull/6918 * fix: preserve plugin created_at timestamp on update by @sammaji in https://github.com/maximhq/bifrost/pull/6935 * chore: test fixes and updates provider harness by @sammaji in https://github.com/maximhq/bifrost/pull/6920 * fix: preserve realtime auth across KV replication by @danpiths in https://github.com/maximhq/bifrost/pull/6943 * chore: test fixes by @sammaji in https://github.com/maximhq/bifrost/pull/6938 * docs: add description for `scope` query parameter in model-configs endpoint by @BearTS in https://github.com/maximhq/bifrost/pull/6946 * docs: remove redundant info callout about user-focused scope in access-profiles by @BearTS in https://github.com/maximhq/bifrost/pull/6947 * fix: rename assistant reasoning_content to alias for groq and cerebras instead of stripping by @sammaji in https://github.com/maximhq/bifrost/pull/6949 * chore: update test models for fireworks, groq, huggingface, mistral, and vertex by @sammaji in https://github.com/maximhq/bifrost/pull/6950 * feat: Refactor provider configs editor to shared component by @roroghost17 in https://github.com/maximhq/bifrost/pull/6951 * feat: add allow all providers for projects in config json by @roroghost17 in https://github.com/maximhq/bifrost/pull/6952 * chore: update helm values for allow all providers by @roroghost17 in https://github.com/maximhq/bifrost/pull/6953 * fix: add custom provider toggle to differentiate in providers who send done marker by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6948 * tests: add e2e tests for allow all providers on vk by @roroghost17 in https://github.com/maximhq/bifrost/pull/6954 * fix: ui fixes for mcp and vmcp by @roroghost17 in https://github.com/maximhq/bifrost/pull/6957 * feat: add toggle for overhead spans filter in plugins by @roroghost17 in https://github.com/maximhq/bifrost/pull/6945 * feat(databricks): add Claude reasoning translation, image inlining, and Responses API fallback by @impoiler in https://github.com/maximhq/bifrost/pull/6958 * fix: terminate stream for upstream providers who sends heart beats after usage by @TejasGhatte in https://github.com/maximhq/bifrost/pull/6960 * fix: bedrock dropping reasoning sign by @akshaydeo in https://github.com/maximhq/bifrost/pull/6942 * docs: document API-key auth for prometheus /metrics endpoint by @roroghost17 in https://github.com/maximhq/bifrost/pull/6963 * feat(config): move `hidden_request_types` to client config with UI editing support by @impoiler in https://github.com/maximhq/bifrost/pull/6962 * feat(databricks): auto-prefix bare model names with `system.ai.` for the Unity AI Gateway by @impoiler in https://github.com/maximhq/bifrost/pull/6965 * feat(databricks): add model name refinement with Unity Catalog prefix and endpoint passthrough by @impoiler in https://github.com/maximhq/bifrost/pull/6968 * harness fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6969 * azure streaming fallback fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6975 * fix: add atomic signed budget usage updates by @danpiths in https://github.com/maximhq/bifrost/pull/6976 * v2.1.0 by @akshaydeo in https://github.com/maximhq/bifrost/pull/6979 * helm check fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6982 * chore: bump bifrost helm chart version to 2.1.39 by @BearTS in https://github.com/maximhq/bifrost/pull/6981 * helm test fixes and helm version bump by @akshaydeo in https://github.com/maximhq/bifrost/pull/6983 * fix: add project and complexity fields to dimensions list by @roroghost17 in https://github.com/maximhq/bifrost/pull/6985 * test harness fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6986 * chore: test fixes for authenticated MCPs by @roroghost17 in https://github.com/maximhq/bifrost/pull/6991 * test harness fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/6992 * routing plugin updates by @akshaydeo in https://github.com/maximhq/bifrost/pull/6994 * plugin dependencies update by @akshaydeo in https://github.com/maximhq/bifrost/pull/6995 * fixes version by @akshaydeo in https://github.com/maximhq/bifrost/pull/6996 * fixes version (#6996) by @akshaydeo in https://github.com/maximhq/bifrost/pull/6997 ## New Contributors * @runshouse made their first contribution in https://github.com/maximhq/bifrost/pull/6691 * @nicolastoulemont made their first contribution in https://github.com/maximhq/bifrost/pull/6633 * @PSR94 made their first contribution in https://github.com/maximhq/bifrost/pull/6723 * @markdawson made their first contribution in https://github.com/maximhq/bifrost/pull/6776 * @Jesse-Schultz-Relativity made their first contribution in https://github.com/maximhq/bifrost/pull/6732 * @Atharva-Kanherkar made their first contribution in https://github.com/maximhq/bifrost/pull/6888 **Full Changelog**: https://github.com/maximhq/bifrost/compare/ent-v2.0.1-base...ent-v2.1.0-base