Commit graph

52465 commits

Author SHA1 Message Date
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
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
yujonglee
bb9eb58815
Merge pull request #42325 from BerriAI/litellm_gcs_native_cache 2026-09-21 15:59:14 -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
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
636a60d3bb chore(rust): update merged workspace lockfile
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:51:14 +00: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
yuneng-jiang
1a4e2b1698
Merge pull request #42326 from BerriAI/litellm_/code-change-investigation-c46585
feat(docker): add a quickstart compose file served from the product repo
2026-09-21 15:47:48 -07: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
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
kerry-berri
5c2c1766a4
Merge pull request #42349 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 3 models
2026-09-21 15:40:29 -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
berriai-litellm-provider-info-sync[bot]
cf7988a2df
chore(prices): sync OpenRouter prices: 3 models
openrouter/~z-ai/glm-flash-latest: max_tokens, max_output_tokens, input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
openrouter/z-ai/glm-5.3-flash: max_tokens, max_output_tokens, input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 22:31:01 +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
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
2a3ae253d4 refactor(rust): fold disk arms into shared match patterns
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:14:22 +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
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
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
kerry-berri
0f47056d70
Merge pull request #42337 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 3 models
2026-09-21 15:10:09 -07:00
kerry-berri
39fd437013
Merge pull request #42338 from BerriAI/litellm-providers/price-sync-aws-bedrock
chore(prices): sync AWS Bedrock prices: 6 models [enrichment failed: AWS Bedrock, 4 held]
2026-09-21 15:10:04 -07:00
Yujong Lee
cb3e212e29 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:08:55 +00:00
yujonglee
844d24b095
Merge pull request #42321 from BerriAI/litellm_native_azure_blob_cache
feat(rust): native Azure Blob response cache backend
2026-09-21 15:06:55 -07:00
Yujong Lee
1827be1302 fix(cache-disk): absolutize store directory and stamp async expiry at write time
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:06:55 +00:00
ryan
5da590a3c5 chore(ui): regenerate schema.d.ts for change_password docstring
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:05:44 +00:00
ryan-crabbe-berri
ddb236b7e2 Merge remote-tracking branch 'origin/main' into pr-41560
# Conflicts:
#	tests/test_litellm/llms/custom_httpx/test_llm_http_handler.py
2026-09-21 15:04:57 -07:00
Yujong Lee
c233377d9c fix(cache): await valkey semantic batch embeddings inline
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:04:46 +00:00
yujonglee
41adbdaa05
Merge pull request #42309 from BerriAI/litellm_rust_secrets_azure_key_vault
feat(rust): add Azure Key Vault secret manager backend
2026-09-21 15:04:10 -07:00
yuneng-jiang
29e9245024
Merge pull request #42294 from BerriAI/litellm_/litellm-db-migration-scope-98b60d
test(migrations): cover the release-to-release upgrade path
2026-09-21 15:03:55 -07:00
ryan
28f70c75d1 fix(auth): reject unchanged password on /user/password/change
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:02:05 +00:00
berriai-litellm-provider-info-sync[bot]
b305928422
chore(prices): sync AWS Bedrock prices: 6 models [enrichment failed: AWS Bedrock, 4 held]
minimax.minimax-m2: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema, supports_function_calling
minimax.minimax-m2.1: max_tokens, supports_vision, max_output_tokens, supports_audio_input, supports_response_schema
minimax.minimax-m2.5: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
moonshot.kimi-k2-thinking: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema, supports_function_calling
openai.gpt-oss-safeguard-120b: max_tokens, supports_vision, max_output_tokens, supports_audio_input, supports_response_schema, supports_function_calling
openai.gpt-oss-safeguard-20b: max_tokens, supports_vision, max_output_tokens, supports_audio_input, supports_response_schema, supports_function_calling
2026-09-21 22:01:14 +00:00
berriai-litellm-provider-info-sync[bot]
0eea01427d
chore(prices): sync OpenRouter prices: 3 models
openrouter/~deepseek/deepseek-v4-flash-latest: output_cost_per_token
openrouter/deepseek/deepseek-v4-flash-0731: output_cost_per_token
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 22:01:13 +00:00
Yujong Lee
847f732f5d fix(cache): await valkey semantic embeddings inline on the caller loop
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:01:13 +00:00
Yuneng Jiang
5c68545104
test: fix stale budget-status and bad-database-url assertions
Two CI checks were asserting behaviour the proxy no longer has. Neither
was catching anything; both now fail for the right reason.

budget_exceeded (tests/otel_tests/test_e2e_budgeting.py)

bf804f5188 made 422 the default for budget refusals and added
budget_exceeded_status_code to restore 429 for callers that need it. The
e2e budget tests still asserted 429, so all six have been failing on a
status change that was deliberate. Assert 422, the documented default,
rather than reading litellm.budget_exceeded_status_code back — a test
that asks the code what it does would have passed straight through this
change and through the next one.

The helpers also caught bare Exception, so a connection error reached
`e.body` and surfaced as an AttributeError instead of a failed
assertion. Narrow both to openai.APIStatusError, which is what a refusal
actually raises (UnprocessableEntityError for 422, RateLimitError for
429), and let anything else propagate as itself.

test_bad_database_url (.circleci/config.yml)

The check required "Database setup failed after multiple retries", which
only the v1 resolver emits, OR uvicorn's "Application startup failed.
Exiting.". With v2 the default, the first branch is dead and the whole
assertion rests on an incidental uvicorn line that HEAD's run did not
emit at all.

Assert the behaviour instead of the wording: the container exits
non-zero, the log names the unreachable server (P1001), it never reaches
"Application startup complete", and it is not left running. The exit
code was previously discarded by `|| true`, so the one thing the job
most needed to check was never checked.

Verified by running the bad-DATABASE_URL container: exit 3, P1001
present, no startup-complete line, container stopped — the new check
passes and the old one passed only by the uvicorn line's accident.
2026-09-21 15:00:54 -07:00
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-berri
e7557ada57 fix(responses): list executed MCP calls as completed mcp_call items in the final output 2026-09-21 14:56:02 -07:00
ryan
7c8aed072f chore: merge main into litellm_cherry_pick_password_breach_reset
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:54:35 +00:00