What's Changed
- fix: search tools not found when using per-request routers by @Quentin-M in #19818
- feat: add faster linting targets for development workflow by @jquinter in #19729
- Litellm fix langfuse otel trace by @Harshit28j in #20382
- fix: Preserve streaming content on guardrail-sampled chunks by @akraines in #20027
- [Fix] Unique Constraint on Daily Tables + Logging When Updates Fail by @yuneng-jiang in #20394
- [Feature] UI - Search Tools: Show Config Defined Search Tools by @yuneng-jiang in #20436
- Fix mypy regression: TypedDict key error in fireworks_ai transformation by @shin-bot-litellm in #20391
- langfuse doc update by @shivamrawat1 in #20443
- fix(a2a): use text/event-stream SSE format for message/stream endpoint by @shin-bot-litellm in #20365
- Revert "fix(a2a): use text/event-stream SSE format for message/stream endpoint" by @ishaan-jaff in #20446
- [Fix] inconsistent response format in anthropic.messages.acreate() when using non anthropic providers by @ishaan-jaff in #20442
- [Feat] UI - Add support for MCP Semantic Filtering on UI by @ishaan-jaff in #20454
- docs: improve Okta SSO setup guide with step-by-step instructions by @michelligabriele in #20353
- fix(lint): remove unused Any/cast imports in github_copilot transformation by @jquinter in #20431
- feat(openrouter): add Qwen3-235B models by @Chesars in #20455
- bump: litellm-proxy-extras 0.4.29 → 0.4.30 by @Sameerlite in #20458
- chore: update poetry.lock for litellm-proxy-extras 0.4.30 by @Sameerlite in #20460
- [Infra] Fixing UI Build by @yuneng-jiang in #20461
- Litellm cicd 5 feb 2026 by @Sameerlite in #20464
- bugfix: Disable merging of consecutive user messages for GigaChat provider by @natimofeev in #20341
- Fix Vertex AI Gemini streaming content_filter handling by @krisxia0506 in #20105
- fix #20326 - [Feature]: Support TTL(1h) field in prompt caching for Bedrock Claude 4.5 models by @Lucky-Lodhi2004 in #20338
- Litellm oss staging 02 04 2026 by @krrishdholakia in #20398
- Cli arguments rds iam auth by @krrishdholakia in #20437
- [Fix] 404 Not Found on /api/event_logging/batch endpoint by @ishaan-jaff in #20504
- [Feat] add
claude-opus-4-6to model cost map by @ishaan-jaff in #20506 - Add Claude Opus 4.6 by @PeterDaveHello in #20508
- fix(ui): adjust daily spend date filtering for user timezone by @nina-hu in #20472
- [Fix] Non Root Dockerfile: Keep package-lock.json by @yuneng-jiang in #20452
- [Infra] UI - Adding Unit Tests for Coverage by @yuneng-jiang in #20513
- Fix test isolation for test_watsonx_gpt_oss_prompt_transformation by @shin-bot-litellm in #20474
- Fix test isolation for test_log_langfuse_v2_handles_null_usage_values by @shin-bot-litellm in #20475
- [Fix] Guardrails API - Ensure OpenAI Moderations Guard works with OpenAI Embeddings by @ishaan-jaff in #20523
- [Feature] Add soft_budget to Team Table + Create/Update Endpoints by @yuneng-jiang in #20530
- [Chore] Move anthropic input/output test to right folder by @shivamrawat1 in #20535
- [Refactor] UI - Usage Page: Spend By Provider by @yuneng-jiang in #20539
- fix: make sure gcs_bucket_name passes by @Sameerlite in #20491
- feat(web_search): add gpt-5-search-api model and docs clarifications by @Chesars in #20512
- [Feat] add ElevenLabs eleven_v3 and eleven_multilingual_v2 to model cost map by @Chesars in #20522
- [Refactor] UI - Admin Page: Migrate to AntD Tabs by @yuneng-jiang in #20465
- fix: Add array type checks for model, agent, and MCP hub data to prev… by @swayambhu94 in #20469
- [Refactor] Rename admins to AdminPanel by @yuneng-jiang in #20554
- Align Claude Opus 4.6 metadata and limits by @PeterDaveHello in #20514
- Add unsupported claude code beta headers in json by @Sameerlite in #20578
- Add full support for Opus 4.6 (Anthropic, Azure AI, Bedrock, Vertex AI) by @Sameerlite in #20551
- perf(prometheus): parallelize budget metrics, fix caching bug, reduce CPU by ~40% by @AlexsanderHamir in #20544
- Warn when budget lookup fails; cache won't populate by @AlexsanderHamir in #20545
- [Feature] Team Soft Budget Email Alerts by @yuneng-jiang in #20553
- Add INFO-level session reuse logging per request by @AlexsanderHamir in #20597
- [Infra] UI - Testing: Adding Unit Testing Coverage by @yuneng-jiang in #20596
- [Feature] UI - Admin Settings: Add option for Authentication for public AI Hub by @yuneng-jiang in #20444
- [Fix] UI - Model Info Page: Fix Input and Output Labels by @yuneng-jiang in #20462
- [Fix] UI - Model Page: Column Resizing on Smaller Screens by @yuneng-jiang in #20599
- refactor: migrate Ant Design notifications to use
App.useApp()cont… by @swayambhu94 in #20549 - fix(mcp): resolve OAuth2 'Capabilities: none' bug for upstream MCP servers by @michelligabriele in #20602
- [Fix] A2a Agent Gateway Fixes - A2A agents deployed with localhost/internal URLs in their agent cards (e.g., http://0.0.0.0:8001/) by @ishaan-jaff in #20604
- [Re-issue: Fix] Keys and Teams Router Setting + Allow Override of Router Settings by @yuneng-jiang in #20205
- fix(sso): extract user roles from JWT access token for Keycloak compa… by @michelligabriele in #20591
- [Feat] add au version of
claude-opus-4-6to model cost map by @ssadedin in #20566 - Add http support to custom code guardrails + Unified guardrails for MCP + Agent guardrail support by @krrishdholakia in #20619
- fix(mypy): resolve missing return statements and type casting issues by @shin-bot-litellm in #20618
- [Feat] MCP Gateway - Allow setting MCP Servers as Private/Public available on Internet by @ishaan-jaff in #20607
- [Feat] IP-Based Access Control for MCP Servers by @ishaan-jaff in #20620
- Add blog post about litellm-observatory by @AlexsanderHamir in #20622
- [Fix] /key/list user_id Empty String Edge Case by @yuneng-jiang in #20623
- docs - expose MCPs on public internet by @ishaan-jaff in #20626
- fix(mypy): Stabilize mypy linting - resolve type checking errors by @shin-bot-litellm in #20627
- fix(test): update deprecated gemini embedding model by @shin-bot-litellm in #20621
- [Feature] UI - Team Settings: Soft Budget + Alerting Emails by @yuneng-jiang in #20634
- Update opus 4.6 blog with adaptive thinking by @Sameerlite in #20637
- [Infra] UI Build for Release by @yuneng-jiang in #20648
- fix(lint): extract helper function to reduce statement count in MCP rest_endpoints by @shin-bot-litellm in #20629
- perf: add LRU cache to normalize_request_route by @ryan-crabbe in #19812
- fix(tests): Fix sendgrid email tests to properly mock httpx client by @shin-bot-litellm in #20628
- perf: optimize get_standard_logging_metadata with set intersection by @ryan-crabbe in #19685
- fix(tests): Fix flaky container and scientific notation tests by @shin-bot-litellm in #20650
- perf: add early-exit guards in completion_cost for unused features by @ryan-crabbe in #20020
- perf: Optimize get_litellm_params with sparse kwargs extraction by @ryan-crabbe in #19884
- perf: guard debug log f-strings and remove redundant dict copy by @ryan-crabbe in #19961
- perf: replace enum construction with frozenset lookup by @ryan-crabbe in #20302
- perf: guard debug f-string in update_environment_variables by @ryan-crabbe in #20360
- fixes content blocked by bedrock by @Harshit28j in #20606
- [Infra] Deleted Teams Table soft_budget by @yuneng-jiang in #20653
- perf: optimize should_run_callback() by @ryan-crabbe in #20449
- fix(tests): Add missing mocks for MCP IP filtering and updated APIs by @shin-bot-litellm in #20652
- Revert "perf: optimize should_run_callback()" by @ishaan-jaff in #20659
- fix(proxy): only create Router when models or search_tools exist by @shin-bot-litellm in #20661
New Contributors
- @Quentin-M made their first contribution in #19818
- @nina-hu made their first contribution in #20472
- @swayambhu94 made their first contribution in #20469
- @ssadedin made their first contribution in #20566
Full Changelog: v1.81.7.dev1...v1.81.9.rc.1