yuneng-jiang
8d4ef24496
Merge pull request #41795 from BerriAI/litellm_wt_0918_5836
...
test(router): cover legacy lowest TPM selection
2026-09-21 16:57:19 -07:00
yuneng-jiang
a158aa878f
Merge pull request #41773 from BerriAI/litellm_dashboard-form-happy-paths
...
test(ui): cover dashboard form journeys
2026-09-21 16:56:25 -07:00
yuneng-jiang
6b254b6be2
Merge pull request #41769 from BerriAI/litellm_model-actor-edges
...
test(model_management): cover actor edges and wildcard models
2026-09-21 16:43:24 -07:00
tin-berri
c1c1ec4f84
Merge pull request #42026 from BerriAI/litellm_user_jwt_savings
...
feat(ui): add internal-user savings and auto-router usage
2026-09-21 16:41:16 -07:00
ryan-crabbe-berri
582c664168
Merge pull request #42346 from BerriAI/litellm_jwt_team_allowed_routes_passthrough_grant
...
fix(auth): let jwt team_allowed_routes paths grant auth=true passthrough
2026-09-21 16:38:05 -07:00
Mateo Wang
8c8fb73eb8
Merge pull request #42355 from BerriAI/litellm_logging_worker_flush_loop_change
...
fix(logging_worker): make flush() survive an event loop change
2026-09-21 16:33:01 -07:00
yujonglee
0b8faae494
Merge pull request #42316 from BerriAI/litellm_valkey_semantic_native_cache
2026-09-21 16:28:12 -07:00
kerry-berri
cf098ceccf
Merge pull request #42362 from BerriAI/litellm_xiaomi_mimo_v26
...
feat(xiaomi_mimo): add mimo-v2.6-pro and mimo-v2.6-flash cost map rows with live e2e coverage
2026-09-21 16:25:15 -07:00
Yujong Lee
2eee880aba
Merge origin/main into litellm_valkey_semantic_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 23:18:54 +00:00
mateo-berri
9388602f46
test(logging_worker): track callback runs with AsyncMock instead of a mutated list
2026-09-21 16:13:09 -07:00
kerry
47a1053065
feat(xiaomi_mimo): add mimo-v2.6-pro and mimo-v2.6-flash cost map rows with live e2e coverage
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 23:12:57 +00:00
yujonglee
a5431244ef
Merge pull request #42313 from BerriAI/litellm_rust_cache_s3
...
feat(rust): add native S3 cache backend
2026-09-21 16:12:54 -07:00
Yujong Lee
4c9e45f5f1
Merge origin/main into litellm_valkey_semantic_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 23:08:31 +00:00
joshua-berri
1baa26d36b
Merge pull request #41074 from BerriAI/litellm_mcp_server_list_stable_order
...
fix(mcp): keep server lists stable across refreshes
2026-09-21 23:06:09 +00:00
Yujong Lee
0c5bbf8c37
Merge branch 'main' into litellm_rust_cache_s3
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 23:04:42 +00:00
ryan-crabbe-berri
a0d1f0236e
Merge pull request #42122 from BerriAI/litellm_db_callback_redaction_settings
...
fix(proxy): apply DB-stored callback redaction settings before logger init
2026-09-21 16:03:44 -07:00
yujonglee
ced2980529
Merge pull request #42308 from BerriAI/litellm_rust_secrets_hashicorp_vault
...
feat(rust): add HashiCorp Vault secret manager crate
2026-09-21 16:03:33 -07:00
mateo-berri
37f1670a1e
Merge remote-tracking branch 'origin/main' into litellm_logging_worker_flush_loop_change
2026-09-21 16:02:04 -07:00
yujonglee
bb9eb58815
Merge pull request #42325 from BerriAI/litellm_gcs_native_cache
2026-09-21 15:59:14 -07:00
mateo-berri
e86ba8bbeb
test(logging_worker): cover a same-loop flush and a repeated flush after a loop change
2026-09-21 15:56:09 -07:00
Yujong Lee
90f93f76f4
Merge origin/main into litellm_valkey_semantic_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:53:27 +00:00
Yujong Lee
911e320b95
Merge remote-tracking branch 'origin/main' into litellm_rust_cache_s3
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# litellm-rust/Cargo.lock
# litellm-rust/Cargo.toml
# litellm-rust/crates/python-bridge/Cargo.toml
# litellm-rust/crates/python-bridge/src/cache/config.rs
# litellm-rust/crates/python-bridge/src/cache/facade.rs
# litellm-rust/crates/python-bridge/src/cache/handle.rs
# litellm-rust/crates/python-bridge/src/cache/native.rs
# tests/test_litellm_rust/test_cache.py
2026-09-21 22:53:07 +00:00
kerry-berri
5fb66e8d98
Merge pull request #42353 from BerriAI/litellm_xai_max_completion_tokens
...
fix(xai): accept max_completion_tokens as a supported param
2026-09-21 15:53:05 -07:00
Yujong Lee
4e2047e9c5
chore: merge main into litellm_gcs_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:51:05 +00:00
Yujong Lee
bd3a680469
merge(main): integrate upstream cache dependencies
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:51:05 +00:00
ryan-crabbe-berri
0efcb9956d
Merge pull request #42278 from BerriAI/litellm_cherry_pick_password_breach_reset
...
feat(auth): breached password detection, self-service change-password and forced password reset
2026-09-21 15:47:46 -07:00
mateo-berri
212ab630b8
fix(logging_worker): make flush() survive an event loop change
...
flush() awaited join() on whatever queue the worker held, even one bound to
an event loop that has since closed. Its unfinished counter is never
decremented on the new loop, so the first flush() after a loop change hung
until pytest-timeout killed it and every later one raised "is bound to a
different event loop" from the queue's Event. The CircleCI unit job has
been red on every branch since the first tests that flush without
enqueueing landed, and an SDK script that flushes from a second
asyncio.run() hangs the same way.
flush() now goes through start() first, which carries the tasks stranded
on the previous loop onto the current one and guarantees a worker there to
drain them, the same loop-change handling every other entry point already
had.
2026-09-21 15:44:26 -07:00
yujonglee
403b4be40e
Merge pull request #42311 from BerriAI/litellm_native_disk_cache
2026-09-21 15:43:58 -07:00
kerry
fee8f38ccc
Merge remote-tracking branch 'origin/main' into litellm_xai_max_completion_tokens
2026-09-21 22:42:12 +00:00
ryan-crabbe-berri
a776d0d722
Merge pull request #41561 from chopratejas/fix-responses-guardrail-custom-tool-output-writeback
...
fix(responses): patch custom_tool_call_output in place on guardrail write-back
2026-09-21 15:40:34 -07:00
yuneng-jiang
17f9f5c3e6
Merge pull request #42339 from BerriAI/litellm_stale_test_fix_budget_status_and_bad_db_url
...
test: fix stale budget-status and bad-database-url assertions
2026-09-21 15:38:55 -07:00
kerry
32c63e332e
Revert "fix(xai): accept max_completion_tokens as a supported param"
...
This reverts commit 4ff251e6b1 .
2026-09-21 22:38:29 +00:00
joshua-berri
3353c57e76
Merge pull request #42292 from BerriAI/litellm_extract_mcp_operation_context_7741
...
refactor(mcp): extract explicit operation context and dispatch
2026-09-21 22:38:07 +00:00
kerry
4ff251e6b1
fix(xai): accept max_completion_tokens as a supported param
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:37:40 +00:00
Yujong Lee
21d1604e64
fix(cache): honor controls and tenant metadata in valkey semantic bridge
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:33:11 +00:00
kerry
5c0589207c
fix(xai): accept max_completion_tokens as a supported param
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:30:13 +00:00
ryan-crabbe-berri
dac88cc6d0
fix(auth): keep blanket wildcards and team-less jwts out of the passthrough grant
...
A team_allowed_routes entry that names no path segment, such as * or /*, is a blanket grant like a named route group, so it no longer opens auth=true passthroughs. The grant in the shared route check now also requires a team on the JWT token, because team_allowed_routes should not apply to a JWT that resolved no team
2026-09-21 15:28:25 -07:00
ryan
8a1c6e49fb
feat(auth): only allow password-login dashboard sessions to call /user/password/change
...
Password login now stamps login_method=username_password into the UI session key
metadata, and change_password rejects any caller that is not a litellm-dashboard
key carrying that marker with 403 before the user row is read. SSO sessions and
user-associated virtual keys can no longer use the endpoint as a current_password
guessing oracle. The forced-reset session is still minted by the password login
path, so it keeps access to the endpoint
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:22:12 +00:00
Yujong Lee
02cc4da252
test(rust): keep s3 parity test edits scoped to the mock handler change
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:18:18 +00:00
Yujong Lee
a286106f4f
fix(rust): isolate explicit s3 keys from env tokens and treat 403 misses
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:17:11 +00:00
Mateo Wang
3d26a29a1a
Merge pull request #42283 from BerriAI/litellm_mid_stream_fallback_walks_full_list
...
fix(router): walk every entry of a fallback list after a mid-stream failure
2026-09-21 15:14:04 -07:00
Yujong Lee
dd175245cf
Merge origin/main into litellm_valkey_semantic_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:13:55 +00:00
Mateo Wang
7ae61b62ed
Merge pull request #42323 from BerriAI/litellm_stream_usage_keep_explicit_zero
...
fix(streaming): keep an explicit provider prompt_tokens=0 or completion_tokens=0 in streamed usage
2026-09-21 15:13:21 -07:00
Yujong Lee
f7b96c9ced
Merge origin/main into litellm_native_disk_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:13:09 +00:00
Yujong Lee
5ca7968812
Merge remote-tracking branch 'origin/main' into litellm_rust_cache_s3
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# litellm-rust/crates/python-bridge/src/cache/config.rs
# litellm-rust/crates/python-bridge/src/cache/facade.rs
# litellm-rust/crates/python-bridge/src/cache/handle.rs
# litellm-rust/crates/python-bridge/src/cache/native.rs
2026-09-21 22:12:40 +00:00
ryan-crabbe-berri
f200d68309
Merge pull request #41560 from chopratejas/fix-responses-agentic-followup-duplicate-kwargs
...
fix(responses): stop agentic follow-up from passing request params twice
2026-09-21 15:12:18 -07:00
Mateo Wang
055b7314e0
Merge pull request #40121 from Atharva-Kanherkar/fix/mcp-responses-stream-single-lifecycle
...
fix(responses): stream one lifecycle across MCP auto-execute rounds
2026-09-21 15:11:57 -07:00
ryan-crabbe-berri
a8003102b2
fix(auth): let jwt team_allowed_routes paths grant auth=true passthrough
...
Explicit paths and trailing-wildcard prefixes in litellm_jwtauth.team_allowed_routes
passed the JWT route check but were then denied by the auth-enforced passthrough
gates, which only read allowed_passthrough_routes from key or team metadata. Both
gates now also accept an explicit team_allowed_routes entry for tokens built by JWT
auth. Named route groups still never grant, and virtual keys, including JWT-mapped
ones, stay key-scoped
2026-09-21 15:11:48 -07:00
Mateo Wang
e7bff277a6
Merge pull request #40251 from BerriAI/litellm_decrease_anys_opus5_r5
...
refactor(types): remove 1,173 Any errors across 169 backend files
2026-09-21 15:11:44 -07:00
Yujong Lee
905909741d
merge(main): integrate upstream Azure secret changes
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:10:22 +00:00