What's Changed
- Generic Guardrails: Add a configurable fallback to handle generic guardrail endpoint connection failures by @itayov in #21245
- fix: preserve metadata for custom callbacks on codex/responses path (… by @saneroen in #21243
- fix: prevent double-counting of litellm_proxy_total_requests_metric by @shivamrawat1 in #21159
- fix(responses-api): return finish_reason='tool_calls' when response.completed contains function_call items by @felixti in #19745
- fix(proxy): fix master key rotation Prisma validation errors by @michelligabriele in #21330
- fix: Make vector stores migration idempotent by @milan-berri in #21325
- feat(bedrock): support native structured outputs API (outputConfig.textFormat) by @ndgigliotti in #21222
- fix(proxy): preserve and forward OAuth Authorization headers through proxy layer by @iamadamreed in #19912
- feat: Add IBM watsonx.ai rerank support by @MateuszOssGit in #21303
- fix: make PodLockManager.release_lock atomic compare-and-delete by @emerzon in #21226
- fix: preserve provider_specific_fields from proxy responses by @sahukanishka in #21220
- perf(router): remove quadratic deployment scan in usage-based routing v2 by @emerzon in #21211
- perf(router): avoid O(n^2) membership scans in team deployment filter by @emerzon in #21210
- fix: add
storeto OPENAI_CHAT_COMPLETION_PARAMS by @namabile in #21195 - Fix Bedrock service_tier cost propagation by @emerzon in #21172
- fix: add missing OpenAI chat completion params to OPENAI_CHAT_COMPLETION_PARAMS by @shin-bot-litellm in #21360
- perf: increase default LRU cache size to reduce multi-model thrash by @emerzon in #21139
- fix(router): avoid O(n) alias scan for non-alias get_model_list lookups by @emerzon in #21136
- [Fix] /v1/models returning wildcard instead of expanded models for BYOK team keys by @shivamrawat1 in #21408
- fix(bedrock): broaden Nova 2 model detection to support all nova-2-* variants by @ryanh-ai in #21358
- feat(bedrock): support nova/ and nova-2/ spec prefixes for custom imported models by @ryanh-ai in #21359
- Revert "fix: make PodLockManager.release_lock atomic compare-and-delete" by @Sameerlite in #21469
- Litellm oss staging 02 16 2026 by @krrishdholakia in #21326
- Litellm oss staging 02 17 2026 by @krrishdholakia in #21361
- [Chore]Add remaining beta tests2 by @Sameerlite in #21299
- Add mapping for websearch from v1/messages to chat/completions by @Sameerlite in #21465
- Add 'reasoning' field to 'reasoning_content' field in delta by @Sameerlite in #21468
- [Feat] Add duckduckgo as search tool by @Sameerlite in #21467
- Litellm sanitise anthropic mesages 2 by @Sameerlite in #21464
- Add File deletion criteria with batch references by @Sameerlite in #21456
- Incident Report: vLLM Embeddings Broken by encoding_format Parameter by @Sameerlite in #21474
- [Feat]Add day 0 claude sonnet 4.6 feat support by @Sameerlite in #21448
- Fix mock test by @Sameerlite in #21475
- fix(tests): restore proxy_server module attrs after test_proxy_admin_expired_key_from_cache by @jquinter in #21473
- fix(ci): add prisma generate step to matrix CI workflow by @jquinter in #21436
- feat(datadog): add 'team' tag to logs, metrics, and cost management by @Harshit28j in #21449
- fix(tests): resolve merge conflict in test_vertex_ai_rerank_transformation.py by @jquinter in #21478
- fix(proxy): use prisma.Json for JSON fields in _rotate_master_key create_many() by @jquinter in #21479
- fix(tests): add inference_geo to model prices JSON schema validator by @jquinter in #21477
- Add deployment affinity routing callback by @emerzon in #19143
- [Refactor] UI - Keys: Change Key Type Label by @yuneng-jiang in #21364
- Add version in claude-code-beta-headers-incident by @Sameerlite in #21485
- fix: guard against None metadata in prometheus metrics by @ishaan-jaff in #21489
- fix(tests): restore litellm.model_cost after reload endpoint test by @jquinter in #21499
- [Infra] Change Server Root Path GitHub action test to non root image by @yuneng-jiang in #21495
- fix(ci): force-reinstall enterprise package to override PyPI version by @jquinter in #21481
- fix(tests): resolve MCP test isolation failures in parallel execution by @jquinter in #21484
- fix(tests): restore default_internal_user_params instead of delattr-ing it by @jquinter in #21483
- fix: improve streaming proxy throughput by fixing middleware and logging bottlenecks by @ishaan-jaff in #21501
- fix(ci): install enterprise package into main project venv, not enterprise's own venv by @jquinter in #21506
- [Bug] Allow internal_user_viewer to access RAG endpoints; restrict ingest to existing vector stores by @shivamrawat1 in #21508
- fix(sso): preserve SSO role regardless of role_mappings config by @yuneng-jiang in #21503
- [Feature] Allow store_model_in_db to be set via database by @yuneng-jiang in #21511
- fix: CI failures - missing env key doc + streaming test by @ishaan-jaff in #21510
- Add aviation and UAE policy templates with tag-based filtering by @ishaan-jaff in #21518
- Mcp user permissions by @krrishdholakia in #21462
- feat(ui): add CSV dataset upload to compliance playground by @ishaan-jaff in #21526
- Litellm cicd 190226 by @Sameerlite in #21531
- Add supoort for context-1m-2025-08-07 by @Sameerlite in #21534
- fix: prevent sys.modules["langfuse"] import failures in langfuse unit tests by @jquinter in #21440
- fix(types): add = None defaults to Optional[str] fields in managed table models by @jquinter in #21500
- [Feature] UI - Models & Endpoints: Add Model Settings Modal by @yuneng-jiang in #21516
- fix(tests): restore litellm.model_cost after TestPriceDataReloadIntegration tests by @jquinter in #21505
- fix(tests): update MCP tests broken by user permissions commit (#21462) by @jquinter in #21536
- fix(mypy): resolve type errors from MCP user permissions commit by @jquinter in #21535
- fix(test): restore default_internal_user_params to None instead of delattr by @jquinter in #21439
- fix(tests): use record.getMessage() instead of record.message for LogRecord by @jquinter in #21476
- fix(ui): remove duplicate URL in tagsSpendLogsCall query string by @jquinter in #20909
- Competitor guardrails: streaming discovery, variations, pre/post split by @ishaan-jaff in #21533
- [Feature] Allow team members to view entire team usage by @yuneng-jiang in #21537
- Litellm project management apis by @Harshit28j in #21078
- fix: remove list-to-str transformation from dashscope by @ZeroAurora in #21547
- Uncomment response_model in user_info endpoint by @richardmcsong in #17430
- fix: allow github aliases to reuse upstream model metadata by @SolitudePy in #21497
- fix(proxy): prevent is_premium() debug log spam on every request by @themavik in #20841
- Convert thinking_blocks to content blocks for hosted_vllm multi-turn by @SherifWaly in #21557
- Fix usage in xai by @Sameerlite in #21559
- [Feat] Add Default usage data configuration by @Sameerlite in #21550
- Fix: add stop param as supported for openai and azure by @Sameerlite in #21539
- [Feat] Add server side compaction translation from openai to anthropic by @Sameerlite in #21555
- Add method based routing for passthrough endpoints by @Sameerlite in #21543
- fix(websearch_interception): fix pre_call_deployment_hook not triggering via proxy router by @michelligabriele in #21433
- fix(constants): add env var override support for COMPETITOR_LLM_TEMPERATURE and MAX_COMPETITOR_NAMES by @jquinter in #21564
- fix(types): fix mypy errors in pass-through endpoint query param types by @jquinter in #21566
- [Feat]Add gemini 3.1 pro preview day 0 support by @Sameerlite in #21568
- bump: version 0.4.40 → 0.4.41 by @yuneng-jiang in #21579
- [Infra] bump proxy extras by @yuneng-jiang in #21580
- [Feature] Key Last Active Tracking by @yuneng-jiang in #21545
- [Infra] Fixing Merge Artifacts by @yuneng-jiang in #21586
- [Infra] Add project_id to DeletedVerificationTable by @yuneng-jiang in #21587
- Fix release by @Sameerlite in #21588
- fix: handle deprovisioning operations without path field by @milan-berri in #21571
- fix(bedrock): add Accept header for AgentCore MCP server requests by @michelligabriele in #21551
New Contributors
- @saneroen made their first contribution in #21243
- @felixti made their first contribution in #19745
- @ndgigliotti made their first contribution in #21222
- @iamadamreed made their first contribution in #19912
- @sahukanishka made their first contribution in #21220
- @namabile made their first contribution in #21195
- @ZeroAurora made their first contribution in #21547
- @SolitudePy made their first contribution in #21497
- @SherifWaly made their first contribution in #21557
Full Changelog: litellm_1.81.13-dev...v1.81.13.dev1