v1.93.0

BerriAI/litellmv1.93.0Jul 19, 2026by yuneng-berri

AI Summary

This release introduces Docker image signature verification using cosign, significantly enhances MCP OAuth support with new auth modes like true_passthrough and oauth_delegate, and refactors the UI using shadcn primitives. It also adds support for new models like GPT-5.6 and Meta Model API, along with various security and guardrail improvements.

Key Highlights

  • Docker images are now signed with cosign for cryptographic verification.
  • Enhanced MCP OAuth support including OBO profiles, true_passthrough, and oauth_delegate modes.
  • UI refactoring to shadcn base UI with shared DataTables and charts.
  • New model support: GPT-5.6 (Azure), Meta Model API (muse-spark-1.1), and Vertex AI Chirp 3.
  • Security improvements including credential hashing in spend logs and CrowdStrike AIDR integration.

New Features

  • Docker signature verification using pinned commit hashes.
  • OAuth2 flow selector on the MCP edit page.
  • Vertex AI Google Cloud Speech-to-Text Chirp 3 transcription support.
  • Azure GPT-5.6 (sol/terra/luna) pricing and metadata.
  • Meta Model API provider and muse-spark-1.1 (day-0) support.

Full Release Notes

## Verify Docker Image Signature

All LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0).

**Verify using the pinned commit hash (recommended):**

A commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:

```bash
cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
  ghcr.io/berriai/litellm:v1.93.0
```

**Verify using the release tag (convenience):**

Tags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:

```bash
cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.93.0/cosign.pub \
  ghcr.io/berriai/litellm:v1.93.0
```

Expected output:

```
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - The signatures were verified against the specified public key
```

---
## What's Changed
* feat(mcp): add entra_obo profile to the token_exchange (OBO) arm by @tin-berri in https://github.com/BerriAI/litellm/pull/31983
* chore(lint): zero out crash-class pyright rules and ban new type: ignore comments by @mateo-berri in https://github.com/BerriAI/litellm/pull/32152
* fix(headroom guardrail): log real token/compression stats instead of "allow" by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32158
* fix(anthropic_messages): forward provider response headers on streaming /v1/messages responses by @mateo-berri in https://github.com/BerriAI/litellm/pull/32160
* fix(bedrock): emit SSE error event when invoke Messages stream ends without message_stop by @mateo-berri in https://github.com/BerriAI/litellm/pull/32159
* test(e2e): migrate access-control and inference-endpoint regression tests by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32016
* test(e2e): close coverage gaps across chat/responses, provider features, batches, prometheus, and langfuse eviction by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32165
* chore: add latest model rule to CLAUDE.md by @mateo-berri in https://github.com/BerriAI/litellm/pull/32164
* ci: gate CircleCI jobs on changed paths by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32080
* fix(e2e): register batch + rust OCR deployments via /model/new by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32166
* fix: merge websearch tool params by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32162
* test: de-flake langfuse callbacks-in-db e2e test by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32167
* feat(router): add separate ITPM/OTPM deployment rate limits by @Sameerlite in https://github.com/BerriAI/litellm/pull/31952
* fix(streaming): surface in-body error payloads on OpenAI-compatible streams by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32237
* fix(ui): reflect persisted "Store Prompts in Spend Logs" toggle on load by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32145
* feat(ui): add cost optimization feedback banner to models page by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32174
* fix(spend): filter /global/spend/report by team_id when group_by=team by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32170
* fix(guardrails): send only new messages since last assistant turn to CrowdStrike AIDR by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/31974
* feat(helm): support user-defined volumes and volumeMounts in microservices chart by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32233
* fix(proxy): resolve os.environ/ refs for all AWS auth params in DB-sourced models by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32256
* fix(main): forward verbosity param to chat completion providers by @mateo-berri in https://github.com/BerriAI/litellm/pull/32254
* feat(ui): flag experimental dashboard pages on the draft deprecation list by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32132
* fix(proxy): stop CacheCodec dropping null fields on cache round-trip by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32207
* feat(complexity_router): add custom_technical_keywords config by @mateo-berri in https://github.com/BerriAI/litellm/pull/32262
* fix(security): hash Bearer-prefixed API keys in spend logs by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/31799
* test(e2e): probe the full spend read surface including schema-hidden routes by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32267
* fix(azure): build responses input_items url with path before query string by @mateo-berri in https://github.com/BerriAI/litellm/pull/32270
* fix(responses_id_security): decrypt response ids for input_items follow-ups by @mateo-berri in https://github.com/BerriAI/litellm/pull/32269
* fix(responses): map upstream 4xx on cancel to client error instead of 500 by @mateo-berri in https://github.com/BerriAI/litellm/pull/32271
* fix(docker): bump wolfi-base digest for glibc 2.43-r10 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32277
* fix(mcp): stamp oauth2_flow=authorization_code when persisting a DCR client registration by @tin-berri in https://github.com/BerriAI/litellm/pull/32283
* fix(logging): classify allm_passthrough_route as async to prevent duplicate success callbacks by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32265
* fix(mcp): forward short OAuth state upstream, keep session in a cookie by @tin-berri in https://github.com/BerriAI/litellm/pull/32146
* fix(bedrock): honor AWS auth params in realtime handler by @mateo-berri in https://github.com/BerriAI/litellm/pull/32275
* feat(pricing): add azure data-zone and long-context pricing for gpt-5.4/5.5 by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32279
* fix(model_armor): scan MCP tool calls for pre_mcp_call / during_mcp_call modes by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32296
* feat(jwt): fall back to DB team memberships when JWT has no team claims by @mateo-berri in https://github.com/BerriAI/litellm/pull/31356
* fix(responses-bridge): custom tool round-trip and allowlist preservation for Codex CLI by @mateo-berri in https://github.com/BerriAI/litellm/pull/32258
* feat(mcp): persist oauth2_flow explicitly on create instead of inferring it at read time by @tin-berri in https://github.com/BerriAI/litellm/pull/32288
* fix(dynamic_rate_limiter): make test_priority_reservation deterministic across minute rollover by @mateo-berri in https://github.com/BerriAI/litellm/pull/32299
* feat(vertex_ai): add Google Cloud Speech-to-Text Chirp 3 transcription support by @mateo-berri in https://github.com/BerriAI/litellm/pull/32274
* feat(mcp): startup backfill stamping oauth2_flow on legacy null rows by @tin-berri in https://github.com/BerriAI/litellm/pull/32290
* docs(github): note greptile runs automatically and require commit hashes in proof of fix by @mateo-berri in https://github.com/BerriAI/litellm/pull/32303
* test(e2e): add management suite covering key/team/user/org lifecycle and route permissions by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32300
* fix(streaming): stamp completion_start_time on first chunk for /v1/messages and /v1/responses by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32284
* fix(mcp_semantic_filter): keep tool names whole in filter response header by @tin-berri in https://github.com/BerriAI/litellm/pull/32282
* fix(batches): price anthropic passthrough message batches correctly in batch cost job by @mateo-berri in https://github.com/BerriAI/litellm/pull/32307
* fix(proxy): trigger gateway fallbacks on local rate limit errors by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/31788
* fix(responses): surface upstream error status on get instead of 500 by @mateo-berri in https://github.com/BerriAI/litellm/pull/32287
* fix(caching): pass only metadata to valkey semantic async embedding by @shivamrawat1 in https://github.com/BerriAI/litellm/pull/32295
* refactor(helm): move litellm-helm chart to helm/ and drop deploy folder by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32234
* feat(cache): back the Redis URL and Database Index UI fields end-to-end by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32075
* fix(proxy): wire general_settings SSRF allowlist to litellm globals by @Sameerlite in https://github.com/BerriAI/litellm/pull/32243
* fix(mcp): alias/display-name tool routing, REST filters, BYOK auth by @Sameerlite in https://github.com/BerriAI/litellm/pull/32320
* fix(gateway): keep the Prometheus /metrics Mount in the gateway route trim by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32317
* fix(mcp): defer proxy import so completion(tools=...) works without proxy extras by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32339
* fix(proxy): recover Prisma DB reconnect loop when client is disconnected by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32323
* fix(responses): stop scheduling sync success_handler concurrently with async_success_handler by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32239
* feat(otel): stamp gen_ai.response.time_to_first_chunk on streaming LLM spans by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32236
* feat(terraform): vendor terraform-provider-litellm as source of truth with endpoint drift CI by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32241
* docs(claude): note UI dev server command in run guidance by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32344
* fix(mcp): apply semantic filter to expanded litellm_proxy tools and show filtered-out count by @tin-berri in https://github.com/BerriAI/litellm/pull/32285
* feat(budget): throttle keys after spend limit instead of revoking access by @yassin-berriai in https://github.com/BerriAI/litellm/pull/31300
* fix(spend): bound the logs-tab pagination count to stop full-window scans by @yassin-berriai in https://github.com/BerriAI/litellm/pull/31825
* refactor(ui): switch shadcn primitives from Radix to Base UI by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32124
* feat(mcp)!: oauth2_flow read verbatim from DB rows and required in config; inference reduced to the request-time backstop by @tin-berri in https://github.com/BerriAI/litellm/pull/32292
* fix(bedrock): preserve stream param and decode SSE for bedrock mantle streaming by @mateo-berri in https://github.com/BerriAI/litellm/pull/32141
* chore: bump litellm-enterprise 0.1.47 -> 0.1.48, litellm 1.92.0 -> 1.93.0 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32349
* fix(main): stop per-request custom pricing from clobbering shared model_cost pricing by @mateo-berri in https://github.com/BerriAI/litellm/pull/32163
* fix(mcp): stop 'Team doesn't exist' warnings for UI dashboard sessions by @tin-berri in https://github.com/BerriAI/litellm/pull/32348
* ci(codspeed): re-enable benchmarks on litellm_internal_staging by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32340
* feat(MCP/UI): add OAuth flow selector on the MCP edit page by @tin-berri in https://github.com/BerriAI/litellm/pull/32298
* test(ui): characterize DataTable behavior before shadcn reskin by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32208
* test(e2e): add coverage registry and collector by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32304
* fix(vertex_ai): build full request path when custom api_base has no path by @mateo-berri in https://github.com/BerriAI/litellm/pull/32367
* docs(CLAUDE.md): warn that harness-injected PR template copies strip HTML comments by @mateo-berri in https://github.com/BerriAI/litellm/pull/32373
* fix(vertex_ai): return create_vertex_url result directly for openai-path partner models with custom api_base by @mateo-berri in https://github.com/BerriAI/litellm/pull/32380
* feat(mcp): support oauth2_token_exchange auth type via REST API and dashboard by @tin-berri in https://github.com/BerriAI/litellm/pull/31772
* test(realtime): assert guardrail block on backend wire traffic instead of model refusal wording by @mateo-berri in https://github.com/BerriAI/litellm/pull/32388
* fix(bedrock): stop stale SigV4 headers clobbering fresh signature on strip-and-retry re-sign by @mateo-berri in https://github.com/BerriAI/litellm/pull/32371
* fix(mcp): apply outbound concurrency limit to OBO tool calls by @tin-berri in https://github.com/BerriAI/litellm/pull/32071
* test(ui): pin token-exchange field visibility to the oauth2_token_exchange auth type by @tin-berri in https://github.com/BerriAI/litellm/pull/32385
* feat(mcp): let users select the entra_obo token_exchange profile in the UI and API by @tin-berri in https://github.com/BerriAI/litellm/pull/32144
* chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32400
* fix(ui): scope key models dropdown options to the key's team by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32382
* fix(model_prices): add gpt-realtime-2.1 models with regional processing uplift by @mateo-berri in https://github.com/BerriAI/litellm/pull/32387
* ci(server-root-path): retry npm/playwright installs and disable matrix fail-fast by @mateo-berri in https://github.com/BerriAI/litellm/pull/32406
* fix(passthrough): stop request params from clobbering merged target query params by @mateo-berri in https://github.com/BerriAI/litellm/pull/32404
* test: add e2e coverage module metrics by @ishaan-berri in https://github.com/BerriAI/litellm/pull/32403
* fix(responses): make response-id encoding idempotent to prevent MCP g… by @thibault-linktree in https://github.com/BerriAI/litellm/pull/32034
* fix(utils): resolve bedrock regional inference profiles to regional pricing in get_model_info (LIT-4056) by @mateo-berri in https://github.com/BerriAI/litellm/pull/32389
* fix(passthrough): stream non-sse passthrough responses instead of buffering in memory by @mateo-berri in https://github.com/BerriAI/litellm/pull/32386
* fix(ui/mcp): do not reset in-flight OAuth resume when create modal mounts closed by @tin-berri in https://github.com/BerriAI/litellm/pull/32416
* fix(mcp): accept integer progressToken in host progress capture by @tin-berri in https://github.com/BerriAI/litellm/pull/32402
* fix(proxy): resolve os.environ/ refs universally in DB-sourced models by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32405
* ci: ratchet LIT003 budget down to current count to remove suppression slack by @mateo-berri in https://github.com/BerriAI/litellm/pull/32423
* ci(llm_responses_api_testing): bound live re-record calls and rerun timeout-only failures to stop 15m no-output kills by @mateo-berri in https://github.com/BerriAI/litellm/pull/32420
* test(responses): bound azure shell tool live call at 90s and skip on provider timeout by @mateo-berri in https://github.com/BerriAI/litellm/pull/32424
* ci: skip unit test workflows when only ui or markdown files change by @mateo-berri in https://github.com/BerriAI/litellm/pull/32422
* feat(ui): expose MCP max_concurrent_requests in server create and edit forms by @tin-berri in https://github.com/BerriAI/litellm/pull/32397
* feat(rate_limit): support per-tag rpm limiting on a single key by @yassin-berriai in https://github.com/BerriAI/litellm/pull/31502
* fix(mcp): drop the cached per-user OAuth token when the credential row changes by @tin-berri in https://github.com/BerriAI/litellm/pull/32302
* perf(auth): negative-cache missing user/key lookups on the request hot path by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32368
* test(vertex_ai): bump local_testing vertex tests from gemini-2.5-flash to gemini-3.5-flash by @mateo-berri in https://github.com/BerriAI/litellm/pull/32439
* test(realtime): record and replay websocket traffic in redis vcr cassettes by @mateo-berri in https://github.com/BerriAI/litellm/pull/32390
* fix(mcp): log MCP tool calls returning isError=true as failures by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32238
* feat(ui): sort session sidebar calls by duration or start time by @thibault-linktree in https://github.com/BerriAI/litellm/pull/32432
* test(responses): replace perma-skip azure shell e2e with offline coverage by @mateo-berri in https://github.com/BerriAI/litellm/pull/32444
* fix(proxy): harden secret name validation for external secret manager integrations by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32092
* test: emit e2e coverage metrics for loki by @ishaan-berri in https://github.com/BerriAI/litellm/pull/32513
* feat(proxy): make Microsoft Graph endpoint configurable for GCC High by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32517
* fix(mcp): pair token-endpoint client_secret with the same source as client_id by @tin-berri in https://github.com/BerriAI/litellm/pull/32507
* ci: run unit test workflows on ui-only changes (revert #32422) by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32530
* fix(health): bridge litellm_metadata into logging object in _batch_health_check by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32520
* feat(ui): sort session sidebar calls by duration or start time by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32502
* fix(otel): restore error.* span attributes on v2 error spans (LIT-4179) by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32524
* refactor(ui): reskin shared DataTable from tremor onto shadcn table primitives by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32209
* fix(bedrock): preserve cache_control ttl on message-level cache points by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32538
* feat(ui): add eslint rules for nested ternaries, large inline object args, and long condition chains by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32415
* fix(guardrails): forward grayswan scan id header by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32544
* feat(ui): add enterprise license expiry banner to admin dashboard by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32540
* refactor(ui): consolidate table cells onto a shared table_cells kit by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32393
* feat(mcp): add true_passthrough and oauth_delegate auth modes by @tin-berri in https://github.com/BerriAI/litellm/pull/31989
* fix(vertex): forward realtime health check params by @mateo-berri in https://github.com/BerriAI/litellm/pull/32550
* feat(pricing): add xai/grok-4.5 model pricing and metadata by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32549
* fix(rerank): log optional_rerank_params at debug to stop leaking request content by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32533
* refactor(ui): point invitation links at the dedicated /onboarding route by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/30857
* fix(bedrock): honor cache_control ttl on message-level cachePoint blocks by @mateo-berri in https://github.com/BerriAI/litellm/pull/32551
* fix(guardrails): walk Responses-API text taxonomy in shared content helpers by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32542
* refactor(otel): move litellm error detail keys under the litellm.* namespace by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32591
* fix(proxy): surface OAuth error params in SSO callback by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32433
* test(benchmarks): run shared logging executor inline to make CodSpeed measurements deterministic by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32435
* fix(deps): constrain soupsieve>=2.8.4 to patch two high-severity CVEs by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32643
* feat(ui): add session id filter to request logs by @thibault-linktree in https://github.com/BerriAI/litellm/pull/32568
* feat(ui): add session id filter to request logs by @tin-berri in https://github.com/BerriAI/litellm/pull/32647
* chore: bump litellm-enterprise 0.1.48 -> 0.1.49 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32634
* fix(ui): prevent reasoning block from expanding chat playground layout by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32485
* docs(enterprise): fix enterprise doc link in Readme.md by @hasan4791 in https://github.com/BerriAI/litellm/pull/31815
* feat(models): add GPT-5.6 (sol/terra/luna) pricing and metadata by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32659
* chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32663
* fix(ui): forward refs through ui primitives and fail tests on swallowed refs by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32401
* refactor(ui): consolidate invitation flow into the dashboard layout by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32576
* fix(guardrails/bedrock): honor disable_exception_on_block by raising ModifyResponseException by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32289
* test(e2e): make dynamic model provisioning robust on split deployments by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32670
* fix(ui): rename Virtual Keys 'Key Hash' filter label to 'Key ID' by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32672
* fix(proxy): capture logging_obj before post_call_failure_hook pops it in ModifyResponseException streaming path by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32665
* ci: add OSS daily branch workflow by @ishaan-berri in https://github.com/BerriAI/litellm/pull/32514
* test: litellm fix failing tests by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32577
* fix(bedrock-invoke): retain clear_tool_uses_20250919 context_management edits and emit context-management-2025-06-27 beta (LIT-3393) by @mateo-berri in https://github.com/BerriAI/litellm/pull/32658
* fix(tests): stop DATABASE_URL env pollution from read-replica tests breaking DB e2e tests by @mateo-berri in https://github.com/BerriAI/litellm/pull/32653
* feat(mcp/ui): expose true_passthrough and oauth_delegate auth types with a no-auth warning by @tin-berri in https://github.com/BerriAI/litellm/pull/32414
* refactor(ui): colocate 11 route segments' components into _components/ by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32704
* fix(mcp): invalidate a browser-authorized upstream token when a mint-relevant field changes by @tin-berri in https://github.com/BerriAI/litellm/pull/32652
* feat(ui): shadcn charts foundation with tremor-compatible wrappers by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32668
* fix(proxy): resolve team org from team_id so org admins can update team budgets by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32560
* test(e2e): replace deprecated batch/realtime models (gpt-5.4-mini, grok-4-1-fast) by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32698
* chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32709
* test(e2e): lower realtime server-VAD threshold to 0.5 by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32710
* fix(guardrails): mask credentials embedded in guardrail_response before persist (LIT-4314) by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32687
* feat: add Meta Model API provider and muse-spark-1.1 (day-0) by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32701
* feat(models): add Azure GPT-5.6 (sol/terra/luna) pricing and metadata by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32678
* ci: skip backend unit tests on ui-only PRs without stranding required checks by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32532
* refactor(ui): colocate cost-tracking and prompts components into _components/ by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32716
* refactor(ui): colocate tag-management and vector-stores views, keeping the shared selectors by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32719
* refactor(ui): colocate the policies view, keeping PolicySelector shared by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32720
* test: add /v1/messages to supported_endpoints schema enum by @tin-berri in https://github.com/BerriAI/litellm/pull/32739
* fix(spend-logs): honor store_prompts_in_spend_logs for guardrail_information (LIT-4314) by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32688
* fix(spend): sum multi-round session cost in logs UI by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/32796
* refactor(ui): colocate agents and guardrails views, keeping shared selectors and types by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32728
* fix(mcp): stop persisting the DCR client onto true_passthrough and oauth_delegate server rows by @tin-berri in https://github.com/BerriAI/litellm/pull/32735
* fix(e2e): batch credentials wiring and compose harness for live proxy suite by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32744
* feat(mcp): add dcr_bridge column and plumbing for client-forwarded auth modes by @tin-berri in https://github.com/BerriAI/litellm/pull/32745
* chore(ui): make knip trustworthy and enforce dead-code in CI by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32727
* build(pre-commit): regenerate eslint-metrics.json instead of failing on drift by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32717
* feat(mcp): relay upstream 401 on client-forwarded pass-through tool calls by @tin-berri in https://github.com/BerriAI/litellm/pull/32556
* feat(ui): add shared composable DataTable component by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32680
* fix(mcp): fail closed and surface semantic filter context window errors by @tin-berri in https://github.com/BerriAI/litellm/pull/32715
* refactor(ui): colocate the skills view, keeping the AIHub-shared skill components by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32803
* feat(mcp): dcr_bridge authorize and token relay redirect handling with mandatory S256 by @tin-berri in https://github.com/BerriAI/litellm/pull/32747
* ci(ui): move frontend lint into its own "UI Lint" workflow by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32810
* feat(mcp): dcr_bridge discovery facade and register relay by @tin-berri in https://github.com/BerriAI/litellm/pull/32753
* feat(mcp): add sealed envelope module for dcr_bridge client-held credentials by @tin-berri in https://github.com/BerriAI/litellm/pull/32748
* fix(bedrock): keep mid-conversation system messages in place for Claude Invoke by @mateo-berri in https://github.com/BerriAI/litellm/pull/32578
* fix(proxy): add coordination_redis routes to component allowlist by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32823
* docs: point OSS contributors at the daily OSS branch by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32830
* fix(proxy): build redis usage cache from REDIS_* env when cache backend is not Redis by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32635
* refactor(ui): full-height sidebar shell with content-scoped top bar by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32793
* feat(otel): emit the gen_ai.client.operation.exception event on failed LLM calls by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32655
* feat(proxy): configure the coordination redis independently of the response cache by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32661
* feat(deploy): make coordination redis a first-class chart and terraform surface by @yassin-berriai in https://github.com/BerriAI/litellm/pull/32662
* feat(mcp): add dcr_bridge envelope consumer helpers by @tin-berri in https://github.com/BerriAI/litellm/pull/32794
* fix(proxy): match multi-mode guardrail_mode without false-COMPLIANT  by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32832
* fix(mcp): merge credentials within the client-forwarded class on an auth-type switch by @tin-berri in https://github.com/BerriAI/litellm/pull/32815
* ci: authorize the expression package (MIT) in liccheck.ini by @tin-berri in https://github.com/BerriAI/litellm/pull/32847
* fix(redis): only use SSLConnection when ssl is truthy in connection pool kwargs by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32825
* refactor(ui): convert caching page charts to shadcn/recharts by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32721
* fix: strip trailing slash from --base-url in lite CLI by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32845
* feat(router): add LLM-based classifier option to complexity router by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32169
* fix(bedrock): add jp.anthropic.claude-opus-4-8 to model cost map by @mateo-berri in https://github.com/BerriAI/litellm/pull/32840
* fix(responses): preserve reasoning_tokens through chat->responses usage translation by @mateo-berri in https://github.com/BerriAI/litellm/pull/32837
* fix(bedrock): gate in-place system role messages on model support for Claude Invoke by @mateo-berri in https://github.com/BerriAI/litellm/pull/32831
* fix(responses-api): raise APIError on in-stream error events; widen ErrorEventError.param to accept dict by @mateo-berri in https://github.com/BerriAI/litellm/pull/32835
* fix(prometheus): skip budget metric DB/cache lookups when gauges are NoOpMetric by @mateo-berri in https://github.com/BerriAI/litellm/pull/32834
* fix(anthropic): strip @version suffix in _model_map_lookup_candidates so @default Vertex AI models resolve to adaptive thinking by @mateo-berri in https://github.com/BerriAI/litellm/pull/32833
* fix(datadog): split log batches proactively under intake payload limits by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32860
* fix(anthropic): translate adaptive thinking/effort to pre-4.6 model support by @mateo-berri in https://github.com/BerriAI/litellm/pull/32867
* test(models): assert capability fields on regional Azure gpt-5.6 entries by @mateo-berri in https://github.com/BerriAI/litellm/pull/32875
* fix(bedrock): flag mapped Claude 4.8+ entries with supports_mid_conversation_system by @mateo-berri in https://github.com/BerriAI/litellm/pull/32882
* fix(mcp): rework the dashboard credential-field lifecycle so the OAuth app is upstream-scoped by @tin-berri in https://github.com/BerriAI/litellm/pull/32752
* feat(ui): root the gateway breadcrumb in the AI Gateway selector by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32886
* feat(ui): dcr_bridge toggle for client-forwarded MCP auth modes by @tin-berri in https://github.com/BerriAI/litellm/pull/32804
* feat(ui): add filter drawer, column visibility, and search to the shared DataTable by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32856
* feat(ui): typed openapi-fetch foundation (fetchClient) + first typed caller (useCustomers) by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/29884
* test(e2e): cover Langfuse logging.yaml P0 logs_spend cells by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32857
* refactor(ui): use TanStack Pacer debounce for the team keys search by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32919
* fix(mcp): strip scheme default port from get_request_base_url netloc by @tin-berri in https://github.com/BerriAI/litellm/pull/32921
* fix(mcp): re-register DCR client when proxy origin no longer matches its registered redirect_uri by @tin-berri in https://github.com/BerriAI/litellm/pull/32527
* refactor(fallback-generalizations): split rules into routing and provider-neutral capability kinds by @mateo-berri in https://github.com/BerriAI/litellm/pull/32873
* test(e2e): drop vertex from pipecat tool smoke and remove key models dropdown suite by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/32925
* ci: gate tests/e2e on zero basedpyright errors in pre-commit and lint CI by @mateo-berri in https://github.com/BerriAI/litellm/pull/32918
* fix(rate-limit-v3): populate x-ratelimit-* remaining/limit values in standard_logging_object for streaming by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32711
* test: remove live OpenAI fine-tuning job-creation test blocked by platform wind-down by @mateo-berri in https://github.com/BerriAI/litellm/pull/32933
* feat(team): add RESTful PATCH /team/{team_id} with JSON merge patch semantics by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32883
* chore(ui): remove eslint-metrics.json lint-count snapshot by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32930
* feat: add lite auth print-token for Claude Code apiKeyHelper support by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/32846
* refactor(ui): convert activity metrics charts to shadcn/recharts by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32726
* feat(ui): extend topnav border across the sidebar header by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32920
* fix(anthropic): thread real provider through capability probes instead of pinning anthropic by @mateo-berri in https://github.com/BerriAI/litellm/pull/32874
* feat(auto_router): keyword tier overrides and semantic keyword matching for the complexity router by @mateo-berri in https://github.com/BerriAI/litellm/pull/32859
* feat(auto_router): keyword tier overrides and semantic keyword matching for the complexity router by @akapur99 in https://github.com/BerriAI/litellm/pull/32829
* feat(ui): add redesigned sidebar account menu by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32931
* fix(guardrails): filter Add-Guardrail mode dropdown per provider by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32712
* feat(complexity_router): log the cause of each routing decision by @akapur99 in https://github.com/BerriAI/litellm/pull/32943
* feat(mcp): admit dcr_bridge oauth_delegate clients via a single envelope bearer by @tin-berri in https://github.com/BerriAI/litellm/pull/32824
* refactor(ui): convert user agent and per-user usage charts to shadcn/recharts by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32725
* docs(anthropic): clarify the Opus 4.5 branch in adaptive-effort translation by @akapur99 in https://github.com/BerriAI/litellm/pull/32876
* fix(proxy): enforce budget and cost tracking for Dashscope tiered pricing by @shivamrawat1 in https://github.com/BerriAI/litellm/pull/32942
* refactor(ui): extract a shared CopyButton and fix the sidebar copy confirmation by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32945
* refactor(ui): convert entity usage and usage page charts to shadcn/recharts by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32729
* feat(guardrails): add pre_mcp_call support to Content Filter by @yucheng-berri in https://github.com/BerriAI/litellm/pull/32936
* refactor(e2e): bucket rate limits, budgets, and spend tracking under quota_management by @mateo-berri in https://github.com/BerriAI/litellm/pull/32928
* chore: bump litellm-proxy-extras 0.4.75 -> 0.4.76 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32957
* feat(proxy): add expires filter to GET /key/list by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32953
* refactor(ui): colocate the usage view, keeping the shared usage components by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32952
* chore(ui): rebuild committed admin dashboard bundle for rc release by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32960
* refactor(ui): convert projects page chart to shadcn/recharts by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/32722
* chore(ci): promote internal staging to main by @mateo-berri in https://github.com/BerriAI/litellm/pull/32884
* chore(release): backport #32956 onto patch-1.93.0rc1 for the 1.93.0 rc2 cut by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33499
* chore(release): backport staging fixes onto patch-1.93.0rc2 for the 1.93.0 stable cut by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33847
* chore(release): backport #33853 and #33864 onto patch-1.93.0rc2 to complete the 1.93.0 stable cut by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33869
* fix(proxy): treat malformed cost-map token limits as absent on /v1/models by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33904


**Full Changelog**: https://github.com/BerriAI/litellm/compare/v1.92.0...v1.93.0