github BerriAI/litellm v1.111.0-dev.2

latest release: v1.108.8
pre-releaseone hour ago

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

  • chore(cost-map): point the fireworks deepseek v4 flash successor at deepseek-v4p1-flash by @kerry-berri in #51478
  • fix(cost): preserve Bedrock cross-region pricing for Messages by @joshua-berri in #51479
  • test(image): point admin MCP schema push at /app/litellm/schema.prisma by @maciej-berri in #51446
  • feat(proxy): add customer usage tracking and drilldowns by @ishaan-j-berri in #51495
  • fix(dynamic_rate_limiter_v3): a capped borrower keeps its cap on its own counter and gets a fresh share at saturation by @kerry-berri in #51494
  • perf(rust): stop re-serializing the Messages request body in Python logging callbacks by @maciej-berri in #51440
  • feat(ui): add deployment-wide Aria visibility setting by @tin-berri in #51506
  • test(ui): give the skills panel's first render 5s to show the catalog by @kerry-berri in #51509
  • fix(router): validate request fields and ignore scalar fallback overrides by @narmstrong-berri in #51502
  • feat(ui): show customer organization usage and budget utilization by @tin-berri in #51483
  • feat(ui): manage customer organizations, teams, and members by @ishaan-j-berri in #51507
  • test: drop the unit tests that flaked on main this week by @kerry-berri in #51488
  • refactor(proxy): name customer member budget columns budget_id and budget_override_id by @kerry-berri in #51490
  • test(security): finish request accounting before changing Vault config by @devin-ai-integration[bot] in #51515
  • fix(ui): align customer member budget form with API contract by @tin-berri in #51523
  • chore(cost-map): add together_ai/thinkingmachines/Inkling-2-Small from the Together models API by @devin-ai-integration[bot] in #51501
  • chore(cost-map): add fal_ai/google/gemini-omni-flash/v1.2/upscale priced per second of upscaled video by @devin-ai-integration[bot] in #51500
  • fix(dynamic_rate_limiter_v3): read a model's saturation from Redis so every worker agrees on it by @kerry-berri in #51519
  • test(providers): compare sagemaker embedding bodies exactly and assert caller encoding wins by @devin-ai-integration[bot] in #51536
  • refactor(router): move Redis key construction out of router-core into the stores by @yujonglee-berri in #50356
  • feat(redis): serve the health checks' deployment states from a native store by @yujonglee-berri in #50357
  • refactor(router): count the whole router_usage family on the native store by @yujonglee-berri in #50862
  • feat(redis): serve the router's session pins from a native store by @yujonglee-berri in #50870
  • refactor(redis): replace the Python RedisBatch with Rust by @yujonglee-berri in #51383
  • fix(proxy): keep call id, model and key logging on keys refused before the body is read by @mateo-berri in #51525
  • feat(budgets): support annual calendar reset periods by @tin-berri in #51508
  • chore(cost-map): add fal_ai/decart/lucy-5b/image-to-video at $0.15 per video from its fal.ai page by @devin-ai-integration[bot] in #51551
  • feat(proxy): enforce customer org, team and member budgets and limits on the request path by @kerry-berri in #51489
  • test(observability): identify team datastore spans by team id in otel excluded services matrix by @devin-ai-integration[bot] in #51554
  • fix(langfuse): reserve span capacity for failure usage attributes by @joshua-berri in #51538
  • feat(proxy): register unknown customer members in the aliased organization's default team by @ishaan-j-berri in #51546
  • feat(nace): add Drex Max decisions and inline images by @saruar-dev in #48426
  • fix(files): match every spelling of a provider file id in the ownership check by @kerry-berri in #51498
  • feat(proxy): router_settings.fallback_on_saturation walks key and team fallbacks before a model saturates, replacing team model_preferences by @kerry-berri in #51439
  • fix(openai): point gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3 and o3-pro at the GPT-6 models as successor by @devin-ai-integration[bot] in #51492
  • fix(openai): record the successor for the gpt-4o-mini audio and realtime preview snapshots by @devin-ai-integration[bot] in #51563
  • fix(utils): register ollama deployment prices from the built-in catalog without calling the provider by @devin-ai-integration[bot] in #51561
  • fix(proxy): import soundfile lazily in the transcribe logging handler by @joshua-berri in #51480
  • fix(router): enforce access groups for pinned deployments by @joshua-berri in #51442
  • fix(interactions): route Vertex lifecycle calls through the selected deployment by @joshua-berri in #51511
  • fix(interactions): bind Deep Research agents and record their costs by @joshua-berri in #51517
  • fix(databricks): record the November 19 retirement and successor for databricks-gemini-3-6-flash by @devin-ai-integration[bot] in #51593
  • fix(deps): bump soupsieve past GHSA-4j63-6c4x-wfg4 and GHSA-mmhr-3c5m-f64f by @devin-ai-integration[bot] in #51585
  • fix(proxy): preserve team aliases in Responses WebSockets by @brianhong-dev in #51380
  • fix(cost-map): mark together_ai/elorian-labs/glimpse-1.0 as supporting function calling and structured outputs by @devin-ai-integration[bot] in #51612
  • fix(proxy): enforce settled customer budgets across workers by @ishaan-j-berri in #51568
  • fix(mcp): treat the mcp_all scope as a wildcard any grant covers by @shrey-berri in #51578
  • feat(access-groups): name group vector stores and list them on team info by @shrey-berri in #51484
  • feat(proxy): customer budget rollup, reset on the budget row's window, named templates, team overrides, multi-window limits and pause_allow_increase by @ishaan-j-berri in #51582
  • feat(proxy): run requests with unknown customer ids untracked instead of refusing them by @ishaan-j-berri in #51548
  • feat(proxy): pick the customer organization's default budget template by name on create and by id on patch by @ishaan-j-berri in #51636
  • feat(proxy): register an unknown customer organization alias as a new organization charged for the request by @ishaan-j-berri in #51637
  • fix(proxy): alert on customer org, customer team, and customer member budgets by @ishaan-j-berri in #51579
  • feat(ui): show and pick vector stores for access groups by @shrey-berri in #51581
  • fix(proxy): display customer identity in spend logs by @ishaan-j-berri in #51596
  • fix(fireworks_ai): read fractional sizes like 1p5b in the size bucket fallback by @Abelo9996 in #51451
  • chore: bump litellm-enterprise 0.1.84 -> 0.1.85, litellm-proxy-extras 0.4.115 -> 0.4.116 by @yucheng-berri in #51643

New Contributors

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

Don't miss a new litellm release

NewReleases is sending notifications on new releases.