What's Changed
- 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
- feat: AI policy template suggestions by @ishaan-jaff in #21589
- fix: reduce proxy overhead for large base64 payloads by @ishaan-jaff in #21594
- Add OpenAPI-to-MCP support via API and UI by @ishaan-jaff in #21575
- docs: add latency overhead troubleshooting guide by @ishaan-jaff in #21600
- docs: add latency overhead troubleshooting guide by @ishaan-jaff in #21603
- feat: add airline off-topic restriction policy template by @ishaan-jaff in #21607
- feat(policy): test playground for AI policy suggestions by @ishaan-jaff in #21608
- ci: auto-regenerate poetry.lock when pyproject.toml changes on main by @jquinter in #21610
- fix(key management): return failed_tokens in delete_verification_tokens response by @jquinter in #21609
- fix(ci): fix YAML syntax error in regenerate-poetry-lock workflow by @jquinter in #21615
- fix(ci): fall back to github.token when GH_TOKEN secret is not set by @jquinter in #21616
- feat: prompt injection guardrail policy template by @ishaan-jaff in #21520
- fix(ci): remove --no-update flag removed in Poetry 2.x by @jquinter in #21617
- fix(ci): use PAT_TOKEN_2 for gh pr create in regenerate-lock workflow by @jquinter in #21618
- feat(ui): show latency overhead for AI-suggested policy templates by @ishaan-jaff in #21620
- feat(ci): auto-approve and auto-merge the regenerated poetry.lock PR by @jquinter in #21619
- fix(ci): drop PAT_TOKEN_2 approval, use github.token for auto-merge by @jquinter in #21625
- chore: regenerate poetry.lock to match pyproject.toml by @github-actions[bot] in #21626
- [Fix] Service Account Visibility for Team Members by @yuneng-jiang in #21627
- fix: handle explicit None model_info in LowestLatencyLoggingHandler by @dkindlund in #21633
- support reasoning and effort parameters on sonnet 4.6 by @jtsaw in #21598
- fix(lint): remove unused imports in semantic_guard and policy_endpoints by @jquinter in #21639
- fix(tests): set premium_user=True in JWT tests that call user_api_key_auth by @jquinter in #21641
- fix(anthropic): empty system messages in translate_system_message by @Chesars in #21630
- fix(tests): pass host to RedisCache in test_team_update_redis by @jquinter in #21643
- fix(policy): use litellm.acompletion directly in AiPolicySuggester by @jquinter in #21638
- fix(lint): remove redundant router import in policy_endpoints init by @jquinter in #21602
- [Refactor] UI: Remove 38 unused files detected by knip by @yuneng-jiang in #21657
- Fix _map_reasoning_effort_to_thinking_level for all gemini 3 family by @Sameerlite in #21654
- Fix: api_base is required. Unable to determine the correct api_base for the request by @Sameerlite in #21658
- Fix mapping of parallel_tool_calls for bedrock converse by @Sameerlite in #21659
- [Fix]Add mcp via openapi spec by @Sameerlite in #21662
- [Feat] Add reasoning support via config by @Sameerlite in #21663
- fix(tests): update test_max_effort_rejected_for_opus_45 regex to match current error message by @jquinter in #21666
- fix(policy_endpoints): re-export private helper functions from package init.py by @jquinter in #21667
- fix(tests): skip more CI tests requiring external DB/Redis connections by @jquinter in #21671
- fix(tests): set premium_user=True in test_aasync_call_with_key_over_model_budget by @jquinter in #21668
- fix(tests): skip CI tests requiring external services (DB, API keys) by @jquinter in #21669
- fix(tests): correct medium reasoning_effort assertion for gemini-3-pro-preview by @jquinter in #21670
- fix(tests): skip project endpoint tests requiring Prisma DB connection by @jquinter in #21675
- fix(tests): skip prisma DB test and sync root schema.prisma with spec_path by @jquinter in #21676
- fix(tests): skip all remaining prisma DB tests in test_key_generate_prisma.py by @jquinter in #21679
- fix(lint): extract service_tier mapping to fix PLR0915 in converse_transformation.py by @jquinter in #21680
- fix(tests): add spec_path=None to MCP server mocks to fix Pydantic validation by @jquinter in #21681
- fix(model-pricing): add missing fireworks_ai model pricing for glm-4p7, minimax-m2p1, kimi-k2p5 by @michelligabriele in #21642
- fix(proxy): use batch_ prefix for Vertex AI batch IDs in encode_file_id_with_model by @michelligabriele in #21624
- fix(tests): skip remaining real prisma DB tests in CI and related test suites by @jquinter in #21684
- fix(tests): skip test_search_api_logging_and_cost_tracking - requires Prisma DB by @jquinter in #21682
- fix(cost-calc): use per-image pricing for Bedrock multimodal embeddings by @michelligabriele in #21646
- fix(types): resolve MyPy assignment type errors in logging_utils and vertex transformation by @jquinter in #21685
- ci: split slow test matrix groups to reduce CI wall-clock time by @jquinter in #21674
- feat: upgrade duplicate issue detection to be AI-powered instead of title text by @ryan-crabbe in #21606
- [Test] UI - Add vitest unit tests for Teams, Models, and Usage by @yuneng-jiang in #21695
- fix: replace Zapier webhook with feedback.litellm.ai endpoint by @milan-berri in #21705
- [Feature] UI - Logs: Show retry count for requests by @yuneng-jiang in #21704
- [Fix] UI - Spend Logs: Cost Calculation by @yuneng-jiang in #21152
- [Fix] /get_image Ignores UI_LOGO_PATH When cached_logo.jpg Exists by @yuneng-jiang in #21637
- [Fix] Aggregated Daily Activity Endpoint Performance by @yuneng-jiang in #21613
- [Fix] UI - Logs: Fix table not updating and pagination issues by @yuneng-jiang in #21708
- fix(responses): eliminate per-chunk thread spawning in async streaming path by @ishaan-jaff in #21709
- [Infra] litellm_release_day_02_19_2026 fixes by @yuneng-jiang in #21718
- fix: redis connection pool reliability by @ryan-crabbe in #21717
- [Feature] Inject Credential Name as Tag for Usage Page Filtering by @yuneng-jiang in #21715
- feat: route gh actions through litellm by @ryan-crabbe in #21720
- Add topic blocker guardrail with keyword and embedding implementations by @ishaan-jaff in #21713
- fix(proxy): self-heal Prisma connection for auth and runtime by @ishaan-jaff in #21706
- UI: Redesign guardrail creation form with vertical stepper by @ishaan-jaff in #21727
- Guardrail - competitor name blocker by @krrishdholakia in #21719
- feat: add insults content filter + topic blocking compliance UI by @ishaan-jaff in #21729
- fix: ui fixes by @krrishdholakia in #21731
- feat(ui): Guardrail Garden - guardrail marketplace by @ishaan-jaff in #21732
- [Fix] Suppress warning for litellm-dashboard team in agent permission handler by @yuneng-jiang in #21721
- [Fix] Model Info: input_cost_per_token masked in UI by @yuneng-jiang in #21723
- [Feature] UI - Usage: Prefix credential tags, update Tag usage banner by @yuneng-jiang in #21739
- [Feature] UI - Organization Info: Show member email, AntD tabs, reusable MemberTable by @yuneng-jiang in #21745
- feat(openrouter): add openrouter/minimax/minimax-m2.5 pricing by @cagojeiger in #21664
- doc: add rollback safety check by @Harshit28j in #21743
- chore: regenerate poetry.lock to match pyproject.toml by @github-actions[bot] in #21758
- add tests for hotpath & docker container by @Harshit28j in #21009
- feat: add session_id to have better routing by @Harshit28j in #21763
- fix: resolve credentials for UI-created models in batch file uploads by @milan-berri in #21502
- [Infra] Building UI for Release by @yuneng-jiang in #21765
- fix(proxy): recover from prisma-query-engine zombie process by @hcavarsan in #21707
- Fix ruff PLR0915 lint errors by @ishaan-jaff in #21766
- fix: resolve flaky test failures in health, spend logs, and CLI tests by @ishaan-jaff in #21769
- fix: resolve 7 mypy linting errors on main by @ishaan-jaff in #21768
- fix(test): update claude model name in test_get_valid_models_from_dynamic_api_key by @ishaan-jaff in #21771
- fix(test): skip 'projects' field in team update test assertion by @ishaan-jaff in #21777
- feat(ui): add forward_client_headers_to_llm_api toggle to general settings by @shin-bot-litellm in #21776
- fix(tests): update gcs pubsub v1 fixture with new SpendLogsMetadata fields by @ishaan-jaff in #21779
- fix(tests): read CI_CD_DEFAULT_ANTHROPIC_MODEL env var instead of hardcoding model by @ishaan-jaff in #21781
- fix(security): fix CVE-2025-69873 and CVE-2026-26996 in docs dependencies by @ishaan-jaff in #21782
- fix(ruff): add missing Set and Dict imports (F821) by @ishaan-jaff in #21785
- fix(security): fix CVE-2025-69873, CVE-2026-26996 in docs deps; allowlist nodejs_wheel CVEs in Grype scan by @ishaan-jaff in #21787
- fix(tests): isolate flaky files endpoint tests from global proxy state by @ishaan-jaff in #21788
- fix(tests): isolate flaky tests - restore global state in setup/teardown by @ishaan-jaff in #21791
- fix(ui): fix 6 failing ui_unit_tests by @ishaan-jaff in #21792
- fix(tests): mock httpx in RPM limit pass-through tests by @ishaan-jaff in #21793
- fix(tests): add flaky retries to flaky CI tests by @ishaan-jaff in #21795
- fix(proxy): restore broad is_database_connection_error; add is_database_transport_error for reconnect by @ishaan-jaff in #21796
- fix: 2 failing CI tests in litellm_mapped_tests_proxy_part2 by @ishaan-jaff in #21797
- Perf/prometheus asgi middleware by @ryan-crabbe in #20434
- perf: skip duplicate get_standard_logging_object_payload for non-streaming req's by @ryan-crabbe in #20440
- perf: reuse LiteLLM_Params by @ryan-crabbe in #20593
- fix(migrations): add ensure_project_id migration + bump litellm-proxy-extras to 0.4.46 by @ishaan-jaff in #21800
- perf: optimize completion_cost() by @ryan-crabbe in #20448
- Perf: add_litellm_data_to_request optimizations by @ryan-crabbe in #20526
- Perf/cost calculator optimizations by @ryan-crabbe in #20541
- perf: cache get_model_access_groups() no-args result on Router by @ryan-crabbe in #20374
- fix(tests): add missing start_db_health_watchdog_task mock by @ishaan-jaff in #21804
- perf: optimize model_dump_with_preserved_fields by @ryan-crabbe in #20882
- Fix/presidio controls by @ma-armenta in #21798
- fix(tests): replace asyncio.sleep(1) with event-based wait to fix flaky metadata callback tests by @ishaan-jaff in #21805
- fix: add missing sql_injection.yaml policy template by @ishaan-jaff in #21806
- perf: move async/sync callback separation from per-request to registration by @ryan-crabbe in #20354
- fix: close streaming connections to prevent connection pool exhaustion by @ryan-crabbe in #21213
- docs: mark v1.81.12 as stable by @ishaan-jaff in #21809
- perf: pre-compute OpenAI client init params at module load by @ryan-crabbe in #20789
- fix(test): replace flaky test_vertex_ai_gemini_audio_ogg with mocked version by @ishaan-jaff in #21807
- fix(tests): isolate auth in spend logs and vertex passthrough tests by @ishaan-jaff in #21810
- perf: skip Usage Pydantic round-trip in logging payload by @ryan-crabbe in #21003
- chore: regenerate poetry.lock to match pyproject.toml by @github-actions[bot] in #21811
- fix(ci): resolve mypy and check_code_and_doc_quality failures on main by @ishaan-jaff in #21812
- fix(test): prevent hang in test_async_no_duplicate_spend_logs by @ishaan-jaff in #21813
- fix(logging): cost should be 0 for cached responses by @ishaan-jaff in #21816
- feat(router): Add complexity-based auto routing strategy by @shin-bot-litellm in #21789
- fix(tests): replace fake France Azure endpoint in test_router_azure_acompletion by @ishaan-jaff in #21818
- fix: make cached OpenAI init params immutable and fix import ordering by @ryan-crabbe in #21815
- fix(test): add timeout to flush() to prevent 300s CI hang in test_async_no_duplicate_spend_logs by @ishaan-jaff in #21819
- fix(tests): clear ANTHROPIC_BASE_URL env var in spend log api_base tests by @ishaan-jaff in #21820
- fix(tests): isolate litellm.cache and CLI env in flaky tests by @ishaan-jaff in #21821
- fix(tests): isolate auth in vertex passthrough and spend logs date range tests by @ishaan-jaff in #21824
- fix(tests): clear _async_success_callback in vertex fine-tune mocked tests by @ishaan-jaff in #21825
- fix(tests): update deprecated Anthropic model in test_user_model_access by @ishaan-jaff in #21826
- Revert "fix(proxy): recover from prisma-query-engine zombie process" by @yuneng-jiang in #21827
- fix(tests): add atexit.register mock to fix flaky test_use_prisma_db_push_flag_behavior by @ishaan-jaff in #21829
- fix: pass prompt as env var in duplicate detection workflows by @ryan-crabbe in #21828
- fix(tests): mock test_claude_tool_use_with_gemini to fix flaky CI by @ishaan-jaff in #21832
- fix(tests): use monkeypatch for Redis pool max_connections tests by @ishaan-jaff in #21834
- fix(tests): move test_router_azure_acompletion to llm_translation by @ishaan-jaff in #21837
- fix(tests): fix flaky test_create_vertex_fine_tune_jobs_mocked by @ishaan-jaff in #21838
- fix(ui): preserve logging_settings in key metadata on update by @dkindlund in #21822
- [Fix] remove prompt from getting logged with during file prompt caching by @shivamrawat1 in #21831
- docs: v1.81.14-stable release notes by @ishaan-jaff in #21839
- fix(logging): zero out response_cost for cache hits in _process_hidden_params_and_response_cost by @ishaan-jaff in #21841
- perf: cache model_fields.keys() as frozensets by @ryan-crabbe in #21133
- fix(lint): fix ruff violations - unused imports, PLR0915, print statements by @ishaan-jaff in #21846
- fix(logging): preserve pass-through endpoint response_cost by @ishaan-jaff in #21844
- docs: update v1.81.14 release notes - guardrail model garden, complexity router placement by @ishaan-jaff in #21843
- docs: update v1.81.14 release notes - guardrail model garden, evals, compliance playground by @ishaan-jaff in #21847
- fix(router): add test coverage for complexity router deployment methods by @ishaan-jaff in #21848
- fix(tests): fix flaky test_use_prisma_db_push_flag_behavior by @ishaan-jaff in #21849
- Agent Builder - support new experimental agent builder, to ensure agents pass compliance checks by @krrishdholakia in #21817
- Agent Builder - improve rejected response detection based on agent response by @krrishdholakia in #21850
- perf: optimize user_api_key_auth by @ryan-crabbe in #21140
- fix: replace Zapier webhook with Google Form for survey submission by @milan-berri in #21621
- [Doc] Server Root Path Regression Incident Doc#21853 by @yuneng-jiang in #21857
New Contributors
- @ZeroAurora made their first contribution in #21547
- @SolitudePy made their first contribution in #21497
- @SherifWaly made their first contribution in #21557
- @github-actions[bot] made their first contribution in #21626
- @cagojeiger made their first contribution in #21664
Full Changelog: litellm_pro-mgmnt-dev-v1.81.13...v1.81.14.rc.1