What's Changed
- 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
- feat: show proxy url in ModelHub by @janfrederickk in #21660
- fix(bedrock): correct modelInput format for Converse API batch models by @hztBUAA in #21656
- doc: add rollback safety check by @Harshit28j in #21743
- fix: only tag selected deployment in access group creation by @hztBUAA in #21655
- feat(proxy): add custom favicon support by @hztBUAA in #21653
- fix(bedrock): prevent double UUID in create_file S3 key by @hztBUAA in #21650
- feat(semantic-cache): support configurable vector dimensions by @hztBUAA in #21649
- 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(utils): normalize camelCase thinking param keys to snake_case by @Chesars in #21762
- 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
- feat: add optional digest mode for Slack alert types by @dkindlund in #21683
- 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
- [Docs] store_model_in_db Release Docs by @yuneng-jiang in #21863
- Litellm dev 02 19 2026 p2 by @krrishdholakia in #21871
- fix(budget): fix timezone config lookup and replace hardcoded timezone map with ZoneInfo by @LeeJuOh in #21754
- fix: add missing return type annotations to iterator protocol methods in streaming_handler by @WhoisMonesh in #21750
- Add gollem Go agent framework cookbook example by @trevorprater in #21747
- fix: avoid mutating caller-owned dicts in SpendUpdateQueue aggregation by @themavik in #21742
- fix(vertex_ai): enable context-1m-2025-08-07 beta header by @edwiniac in #21870
- Revert "fix(vertex_ai): enable context-1m-2025-08-07 beta header" by @krrishdholakia in #21876
- fix: enable context-1m-2025-08-07 beta header for vertex_ai provider by @stakeswky in #21867
- Guardrail Policy Versioning by @krrishdholakia in #21862
- docs: add OpenClaw integration tutorial by @Chesars in #21605
- Litellm fix langfuse otel trace v2 by @Harshit28j in #21309
- fix(bedrock): encode model arns for OpenAI compatible bedrock imported models by @ta-stripe in #21701
- feat(bedrock): support optional regional STS endpoint in role assumption by @ta-stripe in #21640
- fix: ensure arrival_time is set before calculating queue time by @Harshit28j in #21918
- merge main in oss 22 02 by @Sameerlite in #21924
- merge main in oss 21 02 by @Sameerlite in #21926
- Add Noma guardrails v2 based on custom guardrails by @TomAlon in #21400
- Litellm dev 02 19 2026 p2 (#21871) by @krrishdholakia in #21872
- State management fixes for CheckBatchCost by @ephrimstanley in #21921
- Fix: Anthropic model wildcard access issue by @Sameerlite in #21917
- Litellm oss staging 02 22 2026 by @krrishdholakia in #21877
- Litellm oss staging 02 21 2026 by @krrishdholakia in #21786
- fix model cost map for anthropic fast and inference_geo by @Sameerlite in #21904
- Add Priority PayGo cost tracking gemini/vertex ai by @Sameerlite in #21909
New Contributors
- @cagojeiger made their first contribution in #21664
- @janfrederickk made their first contribution in #21660
- @hztBUAA made their first contribution in #21656
- @LeeJuOh made their first contribution in #21754
- @WhoisMonesh made their first contribution in #21750
- @trevorprater made their first contribution in #21747
- @edwiniac made their first contribution in #21870
- @stakeswky made their first contribution in #21867
- @ta-stripe made their first contribution in #21701
Full Changelog: litellm_langfuse-dev-v1.81.13...litellm_idx-db-dev-v1.81.14