Skip to content

v1.110.0-dev.2

Pre-release
Pre-release

Choose a tag to compare

@litellm-release litellm-release released this 08 Nov 02:25
· 6 commits to main since this release
07c7229

Verify Docker Image Signature

All LiteLLM Docker images are signed with cosign. This release is signed with the key introduced in commit e82a3c6.

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 published signing key:

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

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.110.0-dev.2/cosign.pub \
  ghcr.io/berriai/litellm:v1.110.0-dev.2

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(router): record retries and fallback hops past a request's first logged failure by @narmstrong-berri in #50445
  • feat(spend-logs): turn off prompt storage per key or team by @krrish-berri-2 in #50135
  • fix(proxy)!: preserve Responses SSE event framing by @HootRock in #47980
  • feat(azure_ai): add cohere-rerank-v5-pro and -fast from the Azure retail price feed by @devin-ai-integration[bot] in #50499
  • fix(caching): don't cache or replay a reply that has no output by @PyExtreme in #50057
  • fix(gemini): add Gemini 2.5 Pro flex cache price above 200k tokens by @devin-ai-integration[bot] in #50480
  • fix(azure): align chat-latest retirement metadata with its documented alias by @devin-ai-integration[bot] in #50509
  • fix(vertex_ai): authenticate Vertex AI pass-through requests once by @quietjules in #48942
  • fix(redis): share one native circuit breaker between RedisCache and the Rust stores by @yujonglee-berri in #50473
  • fix(azure): add data zone rows for gpt-realtime-2.1, gpt-realtime-2.1-mini and gpt-realtime-1.5 by @devin-ai-integration[bot] in #50519
  • fix(anthropic): preserve streamed tool argument fragments verbatim by @mateo-berri in #50470
  • fix(vertex_ai): return 400 instead of 500 when Gemini image edit has no image by @MukeshK17 in #50244
  • refactor: declare each lazy litellm attribute once and resolve them through one function by @mateo-berri in #50523
  • fix(cost-map): sync OpenAI fine-tune and Codestral 2405 shutdown dates by @devin-ai-integration[bot] in #50529
  • fix(utils): drop Anthropic-only output_config under drop_params on providers that do not read it by @ryan-crabbe-berri in #50542
  • feat(cost-map): read alias_of pointer rows in the catalog and the loader by @kerry-berri in #50512
  • feat(cost-map): add moonshot/kimi-k3.1-pro-highspeed pricing (#50521) by @thinhnx128 in #50538
  • refactor: read lazy attributes with getattr instead of a TypedDict wrapper by @mateo-berri in #50543
  • fix(chatgpt): round-trip encrypted reasoning through /v1/messages by @Hugo-DDT in #49076
  • feat(cost-map): move -latest model aliases into the cost map by @kerry-berri in #50491
  • fix(cost-map): update Together Qwen3.7-Max pricing and add Rnj-1 Instruct by @devin-ai-integration[bot] in #50548
  • feat(guardrails): add prebuilt credential patterns for OpenAI, Anthropic, and Gemini by @yogeshwaran10 in #50268
  • fix(anthropic): reasoning_effort "none" disables thinking on Claude models that think by default by @ryan-crabbe-berri in #50541
  • test(e2e): add a Codex row where a sub-agent must read the task its parent hands it by @ryan-crabbe-berri in #50494
  • feat(ui): set deployment weights in key and team router settings by @joshua-berri in #50552
  • fix(mcp): derive MCP bridge and session keys with the FIPS provider's KBKDF by @yucheng-berri in #50032
  • fix(responses): surface mid-stream upstream errors that arrive without an event type by @ryan-crabbe-berri in #50466
  • test(integration): give each kill-burst its own prompts so cached control replies cannot stand in for late traffic by @mateo-berri in #50569
  • test(integration): budget proxy restart tests from calibrated boot time by @mateo-berri in #49761
  • fix(otel): name the routed model on auto-router LLM spans by @yucheng-berri in #50498
  • fix(proxy): hold DB_RECONCILE_LOCK around credential create, update and delete by @kerry-berri in #50551
  • fix(anthropic): refresh the WIF bearer token on the connection error retry by @kerry-berri in #50570
  • test(translation): expect redacted thinking blocks on Azure and Bedrock Mantle messages after #49076 by @devin-ai-integration[bot] in #50576
  • refactor(ui): clear hardcoded English from dashboard JSX by @yuneng-berri in #50575
  • fix(anthropic): exchange Google identity tokens again on refresh and read oidc/ references out of ANTHROPIC_IDENTITY_TOKEN by @kerry-berri in #50583
  • test(proxy): delete 28 dead skipped tests in test_key_generate_prisma.py by @yuneng-berri in #50550
  • fix(router): a cancelled or retried attempt releases its io-token reservation and least-busy count by @joshua-berri in #50486
  • feat(proxy): per-request header opts a stream into usage.cost without the global include_cost_in_streaming_usage flag by @kerry-berri in #50574

New Contributors

Full Changelog: v1.110.0-dev.1...v1.110.0-dev.2