Skip to content

v1.92.0-dev.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Jun 22:14
88e03e5

Verify Docker Image Signature

All LiteLLM Docker images are signed with cosign. Every release is signed with the same key introduced in commit 0112e53.

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:

cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
  ghcr.io/berriai/litellm:v1.92.0-dev.1

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:

cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.92.0-dev.1/cosign.pub \
  ghcr.io/berriai/litellm:v1.92.0-dev.1

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

  • fix(realtime): stop second Gemini Live setup, retry hung handshake, close guardrail bypass by @mubashir1osmani in #31519
  • feat: declarative fallback generalizations for unknown models by @mateo-berri in #29718
  • test(e2e): move rust OCR e2e into llm_translation on the shared harness by @mubashir1osmani in #31488
  • test(videos): add 1:1 test file scaffold for videos component paths by @Sameerlite in #30631
  • test(batches): add 1:1 test file scaffold for batches component paths by @Sameerlite in #30529
  • feat(a2a): support a2a-sdk 1.x proxy routing for 0.3 and 1.0 agents by @Sameerlite in #30950
  • feat(proxy): add AES-256-GCM at-rest credential encryption with versioned format and re-encryption migration by @michelligabriele in #31215
  • chore(router): simplify unknown-model error message construction by @stuxf in #31566
  • chore(ci): re-issue 31566 for full CI run by @yuneng-berri in #31629
  • fix(ui): keep virtual-keys filters across delete and refresh (LIT-4080) by @ryan-crabbe-berri in #31533
  • perf(ui): load virtual-keys team filter from the fast v2 endpoint by @ryan-crabbe-berri in #31638
  • fix(databricks): split parallel tool calls so each tool message follows tool_calls by @mateo-berri in #31633
  • fix(proxy): gate non-admin /key/generate budget_limits and permissions (VERIA-392) by @yucheng-berri in #31469
  • perf(auth): gather independent pre-call budget-enforcement reads in common_checks by @yassin-berriai in #31604
  • fix(proxy): reject non-finite budget_limits windows on /key/generate (LIT-4094) by @yucheng-berri in #31630
  • fix(proxy): hard-reject CLI session token personal-key budget_limits (LIT-4095) by @yucheng-berri in #31631
  • fix(vertex_ai/files): single media upload for batch files to fix 499s on large uploads by @mubashir1osmani in #31653
  • fix(proxy): count only active users toward license seat limit by @ryan-crabbe-berri in #31227
  • fix(mcp): resolve per-user OAuth identity authoritatively at the token endpoint by @tin-berri in #31657
  • fix(proxy): reject team-scoped object_permission on personal keys for non-admins by @yucheng-berri in #31471
  • refactor(ui): colocate search-tools into route-level _components by @ryan-crabbe-berri in #31658
  • fix(passthrough): drop top-level additional_drop_params on /v1/messages by @mateo-berri in #31645
  • fix(guardrails): scan file and document attachments with Model Armor by @yucheng-berri in #31655
  • fix: skip health check for semantic auto_router deployments by @krrish-berri-2 in #31668
  • fix(bedrock): drop unmappable Responses tools instead of failing the request (LIT-3858) by @mateo-berri in #31663
  • ci(linting): generate prisma client before basedpyright typecheck by @mateo-berri in #31673
  • fix(proxy): emit x-litellm-response-cost header on /messages and /generateContent (LIT-4076) by @mateo-berri in #31675
  • fix(mcp): support client_secret_basic for upstream OAuth token endpoints by @tin-berri in #31635
  • feat(cost_calculator): log per-token-type reasoning and cache cost br… by @Sameerlite in #31686
  • fix(anthropic): drop unsignable thinking blocks and allow null signature in logging (LIT-4007) by @mateo-berri in #31654
  • chore(docs): remove docs accidentally committed to litellm repo by @yuneng-berri in #31691
  • chore: remove _experimental/out by @mateo-berri in #31546
  • feat(prometheus): add litellm_overhead_with_guardrails_latency_metric by @yassin-berriai in #31593
  • chore: shift CI lint left with an opt-in make pre-commit and CLAUDE.md rule by @mateo-berri in #31544
  • feat(proxy): type Customer Management response_model for OpenAPI coverage by @ryan-crabbe-berri in #31043
  • fix(ui): stop Request Logs page from overflowing horizontally and size its columns by @yuneng-berri in #31426
  • perf(otel): memoize per-request lazy import of otel runtime hooks by @yassin-berriai in #31707
  • feat(otel): emit a tools/list CLIENT span for MCP discovery under otel_v2 by @ryan-crabbe-berri in #31525
  • test(benchmarks): add CodSpeed benchmarks for inference, MCP and A2A hot paths by @yassin-berriai in #31716
  • fix(ui): allow any git host on the skills add form (LIT-4053) by @ryan-crabbe-berri in #31652
  • perf(spend): move cost-callback payload deepcopy off the request event loop by @yassin-berriai in #31579
  • chore: prevent CLAUDE.md comment bloat by @mateo-berri in #31729
  • feat(guardrails): expose streaming knobs on generic_guardrail_api by @yucheng-berri in #31730
  • feat(router): tag routing denylist support via ! prefix by @mateo-berri in #31728
  • fix(mcp): stop one unauthenticated server from emptying the aggregate tools/list by @tin-berri in #31684
  • perf(spend): gather independent per-scope spend-counter increments by @yassin-berriai in #31578
  • fix(email): apply EMAIL_SIGNATURE to budget alert emails by @michelligabriele in #31712
  • feat(messages): passthrough /v1/messages to native endpoints via supported_endpoints by @mateo-berri in #31685
  • fix(proxy): isolate poison spend-log rows so one bad record can't drop the whole batch by @yassin-berriai in #31705
  • fix(redis): re-establish async cluster connections after a node restart by @yassin-berriai in #31577
  • fix(logging): route realtime success logging through the bounded worker by @mubashir1osmani in #31733
  • fix(presidio): stream SSE output incrementally instead of buffering the whole response by @yassin-berriai in #31503
  • feat(anthropic): add Claude Sonnet 5 by @mateo-berri in #31740
  • chore: bump litellm to 1.92.0 and litellm-enterprise to 0.1.45 by @yuneng-berri in #31757
  • fix(token_counter): count legacy function_call.arguments (VERIA-492) by @yucheng-berri in #31741
  • fix(presidio): revert stream SSE output incrementally instead of buffering by @tin-berri in #31764
  • chore(ci): promote internal staging to main by @yuneng-berri in #31765

Full Changelog: v1.91.0-rc.1...v1.92.0-dev.1