Commit graph

6647 commits

Author SHA1 Message Date
Mateo Wang
7b8bc54237
Merge pull request #42036 from BerriAI/litellm_team_membership_lookup_fail_closed
fix(auth): fail closed when the team membership lookup hits a db outage
2026-09-21 14:58:46 -07:00
Mateo Wang
4b54897b36
Merge pull request #42315 from BerriAI/litellm_scim_delete_evict_user_cache
fix(proxy): evict the cached user row when SCIM or /user/delete removes a user
2026-09-21 14:51:53 -07:00
Yassin Kortam
17b56cc4ca
Merge pull request #41505 from BerriAI/litellm_keep_config_models_on_empty_config_read
fix(proxy): keep config-defined deployments when a config read returns no model_list
2026-09-21 16:43:15 -05:00
yucheng-berri
79d6e236f9
Merge pull request #39805 from BerriAI/litellm_mcp_admin_api_preserve_oauth_scopes
fix(mcp): keep oauth scopes in admin api credential redaction
2026-09-21 14:29:13 -07:00
Yassin Kortam
da1ccaec67
Merge pull request #40322 from BerriAI/litellm_lit7351_reservation_lease_renewal
fix(proxy): renew budget reservation counter TTL while the request is in flight
2026-09-21 16:07:14 -05:00
yuneng-jiang
5e0512b611
Merge pull request #42291 from BerriAI/litellm_lit7597_detach_credential
fix(proxy): detach stored credential when model editor selects None
2026-09-21 14:05:28 -07:00
kerry-berri
f5f53a4cf4
Merge pull request #40429 from BerriAI/litellm_upgrade_banner_changelog_stats
feat(ui): add upgrade banner with latest release changelog stats
2026-09-21 13:56:05 -07:00
mateo-berri
d8ce49de06 fix(proxy): evict the cached user row when SCIM or /user/delete removes a user 2026-09-21 13:51:26 -07:00
Mateo Wang
662e5b6e32
Merge pull request #42284 from BerriAI/litellm_qianwen_ai_platform_rename
fix: rename the mainland China brand to Qianwen AI Platform
2026-09-21 13:18:20 -07:00
kerry
9611af7817 Merge remote-tracking branch 'origin/main' into litellm_upgrade_banner_changelog_stats 2026-09-21 20:06:41 +00:00
joshua-berri
3549143bcd
Merge pull request #34919 from BerriAI/litellm_fix_mcp_peek_utf8_boundary
fix(mcp): handle split UTF-8 routing previews
2026-09-21 19:56:50 +00:00
yucheng-berri
884407dad4
Merge pull request #42119 from BerriAI/litellm_default_policy_attachments
* feat(policy_engine): add default fallback policy attachments

A policy attachment with default: true applies only when no non-default
attachment matches the request, so an opt-in guardrail policy replaces the
fallback one instead of running alongside it. Supported in config.yaml,
/policies/attachments, the Admin UI Attachments tab and the resolver
(matched_via is prefixed with default:).

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(policy_engine): ignore inapplicable non-default attachments when selecting defaults

A non-default attachment whose policy is missing or whose condition does not match the request
no longer suppresses default attachments. The impact preview marks default counts as an upper bound

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(policy_engine): accept any sequence of policy names in condition matching

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(policy_engine): resolve policies once and apply fallback semantics in get_matching_policies

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 12:55:42 -07:00
mateo-berri
bd8df0ed8f test: keep the Qwen brand missing-key tests off the network and split the ChatGPT fields test back out 2026-09-21 12:54:23 -07:00
Mateo Wang
2e35ae1065
Merge pull request #42049 from BerriAI/litellm_mantle_native_anthropic_messages
feat(bedrock_mantle): serve /v1/messages for Claude models on Mantle's native Anthropic Messages API
2026-09-21 12:52:16 -07:00
yuneng
d69eb7f095 fix(proxy): fall back to the credentials table when validating litellm_credential_name
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:47:27 +00:00
tin-berri
457b01e96d
Merge pull request #42055 from BerriAI/litellm_prompt_caching_request_table
feat(ui): show prompt caching requests and net savings
2026-09-21 12:45:11 -07:00
joshua-berri
211ff96943
Merge pull request #39189 from BerriAI/litellm_mcp_list_pagination_lit5594
fix(mcp): paginate prompt and resource discovery
2026-09-21 19:35:17 +00:00
Joshua Valluru
a835e75620 fix(mcp): handle split UTF-8 routing previews in place 2026-09-21 12:24:19 -07:00
yuneng
177021b2ac fix(proxy): gate explicit credential detach only on PATCH /model/{id}/update
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:22:57 +00:00
yuneng
10d343c3ee fix(proxy): detach stored credential when model editor selects None (LIT-7597)
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:22:57 +00:00
Joshua Valluru
bf5dff8986 chore: sync MCP UTF-8 fix with main 2026-09-21 12:15:57 -07:00
mateo-berri
cf00ab1bf8 fix: rename the mainland China brand to Qianwen AI Platform 2026-09-21 12:13:43 -07:00
Yassin Kortam
5673f67727
Merge pull request #42022 from BerriAI/litellm_redis_durable_spend_log_buffer
fix(proxy): park requeued spend logs in Redis so they survive a pod restart during a DB outage
2026-09-21 14:01:34 -05:00
mateo-berri
4eed951e6f Merge commit '36b8be7d81b' into litellm_mantle_native_anthropic_messages_b4dc
# Conflicts:
#	tests/test_litellm/llms/anthropic/experimental_pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py
2026-09-21 12:00:37 -07:00
moe-berri
a83773cfa5
Merge pull request #41886 from BerriAI/litellm_jev_autorouter_launch_1789767495
feat(auto-router): add JEV classifier alongside LLM classifier
2026-09-21 11:55:44 -07:00
Joshua Valluru
1499d84f5a fix(mcp): paginate optional discovery lists 2026-09-21 11:37:55 -07:00
kerry
4595d18047 Merge remote-tracking branch 'origin/main' into pr40429 2026-09-21 17:42:28 +00:00
ryan-crabbe-berri
cc1a3157d3
Merge pull request #42121 from BerriAI/litellm_utils_model_info_lookup
feat(proxy): add GET /utils/model_info to look up cost map info for unregistered models
2026-09-21 10:42:28 -07:00
yucheng
e647255909 fix(policy_engine): resolve policies once and apply fallback semantics in get_matching_policies
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 17:36:03 +00:00
ryan-crabbe-berri
5573265013
Merge pull request #41906 from BerriAI/litellm_team_member_budget_source_reset
feat(team): show whether a member follows the team default budget and allow resetting to it
2026-09-21 10:34:08 -07:00
Moe Khalil
bb46e8b774 chore(auto-router): merge main and preserve JEV configuration
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 17:16:18 +00:00
yucheng-berri
51ae7ab1fd
Merge pull request #41588 from BerriAI/litellm_ui_session_personal_key_budget_ceiling
* fix(key_generate): use user's budget for UI session personal keys

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* Update litellm/proxy/management_endpoints/key_management_endpoints.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix(user_update): evict cached user on max_budget change so the personal key ceiling refreshes on every worker

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: jesus-berri <jesus@berri.ai>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: yucheng <yucheng@berri.ai>
2026-09-21 10:11:29 -07:00
yuneng-jiang
da76ba83ad
Merge pull request #42105 from BerriAI/litellm_flip_v2_migration_resolver_default
feat(proxy): default to the v2 migration resolver
2026-09-21 10:05:59 -07:00
Yassin Kortam
def37c6532
Merge pull request #42097 from BerriAI/litellm_budget_exceeded_422
fix(proxy): return 422 instead of 429 for BudgetExceededError
2026-09-21 08:35:30 -05:00
Devin AI
53fe97975f Merge remote-tracking branch 'origin/main' into litellm_ui_session_personal_key_budget_ceiling
Some checks failed
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Modules / fmt, validate, test (aws) (push) Has been cancelled
Terraform Modules / fmt, validate, test (gcp) (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	litellm/proxy/management_endpoints/internal_user_endpoints.py
2026-09-20 19:40:05 +00:00
joshua-berri
c25601fb5f
Merge pull request #42064 from BerriAI/litellm_fix_jwt_deactivated_users_8217
fix(auth): reject deactivated JWT users and refresh cached status
2026-09-20 19:35:53 +00:00
Moe Khalil
93dddbf047 chore(auto-router): merge main budget fix into JEV classifier
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 17:16:48 +00:00
moe-berri
1e161f516c
Merge pull request #41879 from BerriAI/litellm_jev_test_budget_1789764884
fix(proxy): enforce virtual key budgets for JEV test routing
2026-09-20 10:10:21 -07:00
Moe Khalil
8505d10017 chore(auto-router): merge main into JEV launch branch
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 14:53:05 +00:00
ryan
59f98d5363 feat(proxy): add GET /utils/model_info to look up cost map info for unregistered models 2026-09-20 10:30:26 +00:00
kerry
3777b0b0d9 test(proxy): document why the release info route check asserts by not raising
Some checks failed
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 09:54:29 +00:00
yucheng
ef55eb6bdf fix(policy_engine): ignore inapplicable non-default attachments when selecting defaults
A non-default attachment whose policy is missing or whose condition does not match the request
no longer suppresses default attachments. The impact preview marks default counts as an upper bound

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 09:07:08 +00:00
yassin
b415f2263a test(proxy): restore pipeline methods on expiring Redis fake after merge
Some checks failed
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Modules / fmt, validate, test (aws) (push) Has been cancelled
Terraform Modules / fmt, validate, test (gcp) (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 08:59:46 +00:00
yassin
14cb7c65c2 Merge remote-tracking branch 'origin/main' into litellm_lit7351_reservation_lease_renewal
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	litellm/proxy/spend_tracking/budget_reservation.py
2026-09-20 08:53:59 +00:00
yassin
6764a99410 Merge remote-tracking branch 'origin/main' into litellm_keep_config_models_on_empty_config_read
Some checks failed
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
Terraform Modules / fmt, validate, test (aws) (push) Has been cancelled
Terraform Modules / fmt, validate, test (gcp) (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled
2026-09-20 08:53:04 +00:00
yassin
9e53ee5f04 Merge remote-tracking branch 'origin/main' into litellm_redis_durable_spend_log_buffer 2026-09-20 08:52:32 +00:00
kerry
a36a62a7f9 Merge remote-tracking branch 'origin/main' into litellm_upgrade_banner_changelog_stats 2026-09-20 08:44:11 +00:00
yucheng
7fc114c24f feat(policy_engine): add default fallback policy attachments
A policy attachment with default: true applies only when no non-default
attachment matches the request, so an opt-in guardrail policy replaces the
fallback one instead of running alongside it. Supported in config.yaml,
/policies/attachments, the Admin UI Attachments tab and the resolver
(matched_via is prefixed with default:).

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 08:39:03 +00:00
Yuneng Jiang
129c4a703b
fix(proxy): only warn about the deprecated flag when it came from the CLI
USE_V2_MIGRATION_RESOLVER=true is a supported way to select v2, but click
sets the same parameter from that env var, so the deprecation notice fired
for environment-based config that is not deprecated. The notice now keys off
click's parameter source.

Also drops an em dash from the notice, and moves the resolver decision under
mock-free tests by making it take the env value as an argument.
2026-09-20 01:22:31 -07:00
Yuneng Jiang
9aec964bac
Merge remote-tracking branch 'origin/main' into litellm_flip_v2_migration_resolver_default
Drops the TQ008 suppressions the new test carried; main removed that rule.
2026-09-20 01:02:19 -07:00