v1.91.0
📦 litellmView on GitHub →
✨ 12 features🐛 24 fixes🔧 36 symbols
Summary
This release introduces Docker image signature verification via cosign and adds Day 0 support for Gemini 3.5 Flash and Gemini managed agents. Numerous bug fixes address issues across proxying, Bedrock, Deepseek, caching, and UI stability.
Migration Steps
- To verify Docker images, use the provided `cosign verify` command with either the pinned commit hash (recommended) or the release tag.
- If using Bedrock/Cohere, ensure embedding_types are sent as a JSON array.
- If encountering Pydantic ValidationErrors related to batch metadata in Bedrock, ensure metadata is correctly sanitized.
- If using Deepseek, note the switch to the native /anthropic/v1/messages endpoint and tool sanitization.
- If using Vertex AI with Gemini 3.5+, be aware that the function_call id is omitted on tool turns.
- If using Vertex Gemma, ensure `context_management` is stripped from the request body.
✨ New Features
- Added support for verifying LiteLLM Docker image signatures using cosign.
- Added user_email and user_alias to user budget metrics in Prometheus.
- Added Interactions API endpoint to the playground with SSE streaming.
- Propagated team_id and team_alias to all child OTEL spans.
- Added Day 0 support for Gemini 3.5 Flash.
- Added support for Gemini managed agents.
- Added gemini-3.1-flash-lite model cost map.
- Added team passthrough routes parity and edit load fix to the UI.
- Migrated Interactions to Google Interactions API steps schema (May 2026).
- Added native MCP OAuth support for cursor.
- Added behavior-pinning harness and Key Tier-1 matrix for testing.
- Added granian as an ASGI compliant web server for better throughput stability.
🐛 Bug Fixes
- Proxy admins can now gate team allowed_passthrough_routes.
- Stabilized image-edit VCR cassettes to stop live gpt-image-1 spend.
- Fixed Bedrock/Cohere to send embedding_types as JSON array, not string.
- Migrated realtime + rerank tests off shut-down upstream models.
- Fixed caching to replay openai/responses bridge cache hits as chat streams.
- Sanitized batch metadata in Bedrock to prevent Pydantic ValidationError.
- Fixed Deepseek to use native /anthropic/v1/messages endpoint and sanitize tools.
- Fixed proxy to decode bytes and pass-through SSE for Google-native streamGenerateContent.
- Replaced shut-down gpt-4o-audio-preview with gpt-audio-1.5 in tests.
- Seeded Redis counter via SET NX in spend_counter to prevent cross-pod double-seed.
- Normalized batch file IDs before ManagedObjectTable write in proxy.
- Used forwarded model_id for native Azure container IDs in router.
- Restored log filter loading indicator in UI.
- Fixed JWT on tools/list and REST tools/call server resolution for MCP.
- Fixed function_call id omission on Vertex Gemini 3.5+ tool turns.
- Ensured streamed text deltas are never dropped and terminal completion is always emitted for interactions.
- Exposed Prisma idle/connect timeout and extra DB URL params in proxy.
- Serialized guardrail_response to JSON in OTEL traces.
- Hydrated wildcard discovery credentials in proxy.
- Stripped `context_management` from request body for vertex_gemma.
- Recalculated cost after router retry failures.
- Emitted guardrail span on violation, surfacing status + categories in OTEL.
- Tolerated transient 500 in google maps grounding test for vertex_ai.
- Restored npm to non_root builder image in docker.
Affected Symbols
cosignteam allowed_passthrough_routesgpt-image-1embedding_typesbedrockcohererealtimererankgpt-4o-audio-previewgpt-audio-1.5user budget metricsInteractions API endpointSSE streamingOTEL spansgemini-3.5-flashgemini managed agentsgemini-3.1-flash-liteRedis counterManagedObjectTableAzure container IDslog filterJWT on tools/listREST tools/call serverfunction_call idVertex Gemini 3.5+Prismaguardrail_responseOTEL traceswildcard discovery credentialsvertex_gemmacontext_managementrouter retry failuresguardrail spangoogle maps grounding testnpmblack