v1.95.0-rc.3Pre-release
Added 1
- Send RFC 8707 resource indicators on upstream OAuth legs in MCP
Changed 2
- Bump gitpython to 3.1.55 and brace-expansion to 5.0.8
- Move the logs end-user filter onto /management/v1 endpoint
Fixed 16
- Advertise 1M context window for Claude Opus 4.6+ on Azure AI Foundry
- Resolve judge_model credentials via lazy Router lookup in llm_as_a_judge guardrails
- Center vertical toolbar dividers in UI
- Restore the Add MCP Server dialog size and header spacing in UI
- Truncate long team names in the models table team dropdown in UI
- Resolve dashboard base URL from environment instead of hardcoding localhost in e2e UI tests
- Preserve cache_control breakpoints in comprsr write-back for guardrails
- Pass explicit Python version request to uv tool install
- Match exact class in callback dedup so a custom subclass does not block a built-in logger
- Populate cache write token metrics for OpenAI-style usage in Prometheus
- Validate default team values in Default User Settings in UI
- Sanitize per-key callback config out of logged metadata in proxy
- Roll up tool spend daily instead of scanning SpendLogs in proxy
- Keep one chat completion id per stream and always stream completed responses in responses_bridge
- Compress content-parts messages in headroom guardrail for Anthropic traffic
- Release the pre-routing strategy slot when a deployment is replaced or deleted in router
Security 1
- All LiteLLM Docker images are now signed with cosign for verification
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.95.0-rc.3
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.95.0-rc.3/cosign.pub \
ghcr.io/berriai/litellm:v1.95.0-rc.3
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(ci): promote internal staging to main by @mateo-berri in https://github.com/BerriAI/litellm/pull/32884
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33308
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33425
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33491
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33640
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/33868
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34200
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34450
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34519
- fix(azure_ai): advertise 1M context window for Claude Opus 4.6+ on Foundry by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/34556
- feat(mcp): send RFC 8707 resource indicators on upstream OAuth legs by @tin-berri in https://github.com/BerriAI/litellm/pull/34265
- fix(guardrails): resolve judge_model credentials via lazy Router lookup in llm_as_a_judge by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/34509
- style(ui): match MCP Servers tabs to the dashboard's line tab pattern by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34685
- fix(ui): center vertical toolbar dividers by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34684
- fix(ui): restore the Add MCP Server dialog size and header spacing by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34679
- fix(ui): truncate long team names in the models table team dropdown by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34689
- fix(e2e/ui): resolve dashboard base URL from env instead of hardcoding localhost by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/34739
- chore(deps): bump gitpython to 3.1.55 and brace-expansion to 5.0.8 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34798
- fix(guardrails): preserve cache_control breakpoints in compresr write-back by @tin-berri in https://github.com/BerriAI/litellm/pull/34660
- fix(install): pass an explicit Python version request to uv tool install by @tin-berri in https://github.com/BerriAI/litellm/pull/34750
- refactor(management): move the logs end-user filter onto /management/v1 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34691
- fix: match exact class in callback dedup so a custom subclass does not block a built-in logger by @yucheng-berri in https://github.com/BerriAI/litellm/pull/34804
- fix(prometheus): populate cache write token metrics for OpenAI-style usage by @yucheng-berri in https://github.com/BerriAI/litellm/pull/34803
- chore(typing): clear 2.7k basedpyright Any errors across 15 hotspot files by @mateo-berri in https://github.com/BerriAI/litellm/pull/34745
- test(e2e): stop racing control-plane writes across the mcp, a2a, guardrail and passthrough suites by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/34833
- fix(ui): validate default team values in Default User Settings by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/34815
- fix(proxy): sanitize per-key callback config out of logged metadata by @yuneng-berri in https://github.com/BerriAI/litellm/pull/32583
- fix(proxy): roll up tool spend daily instead of scanning SpendLogs by @tin-berri in https://github.com/BerriAI/litellm/pull/34675
- fix(responses_bridge): keep one chat completion id per stream and always stream completed responses by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/34539
- fix(guardrails): compress content-parts messages in headroom guardrail (Anthropic traffic) by @tin-berri in https://github.com/BerriAI/litellm/pull/34586
- fix(router): release the pre-routing strategy slot when a deployment is replaced or deleted by @shivamrawat1 in https://github.com/BerriAI/litellm/pull/34564
- fix(guardrails): classify all 4xx HTTPException guardrail blocks as intervened by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/33821
- chore: rebuild Admin UI bundle for release by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34859
- test: unstale the reasoning-effort grid count and the responses bridge test by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34868
- test(e2e): realign Admin UI specs with the MCP dialog and keyless landing by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34870
- test(e2e): unblock the ui suite, fix the mcp registration race, park two known product bugs by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/34853
- test(e2e): make MCP and prometheus e2e tests robust to data-plane sync lag by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/34854
- Fix cache leakage card layout to keep date picker on right by @tin-berri in https://github.com/BerriAI/litellm/pull/34885
- fix(gateway): route /a2a through the gateway component by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/34958
- fix(e2e): poll for both spend rows before asserting the cache-hit contract by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/34968
- test(e2e): skip passthrough headers test until stage can route custom paths to provider creds by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/34980
- feat(ui): mark Cost Optimization as beta in the left nav by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34984
- fix(proxy): avoid DB outage during planned RDS IAM rotation by @mubashir1osmani in https://github.com/BerriAI/litellm/pull/34749
- chore(ci): promote internal staging to main by @yuneng-berri in https://github.com/BerriAI/litellm/pull/34864
- test(e2e): bound the post-/model/new servable wait at 40s by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35020
- test(e2e): poll MCP tools across multi-worker lag (#35047) by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35049
- chore(release): sync rc/1.95.0 with the v1.95.0-rc.1 main SHA by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35414
Full Changelog: https://github.com/BerriAI/litellm/compare/v1.95.0-rc.2...v1.95.0-rc.3