Commit graph

52379 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
yucheng-berri
e0e5b7924a
Merge pull request #42312 from BerriAI/litellm_bedrock_batch_s3_creds_leak
Register s3_access_key_id, s3_secret_access_key and s3_encryption_key_id as
LiteLLM-owned batch params so they are no longer forwarded to Bedrock as
additionalModelRequestFields (which 400s ordinary chat on a batch-configured
deployment), keep them on CredentialLiteLLMParams so the batch/file paths
still receive them, and redact the S3 credential key names in debug logs.

Resolves LIT-8290

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 14:50:54 -07:00
Mateo Wang
10d0d5acb2
Merge pull request #42314 from BerriAI/litellm_alerting_batch_keeps_distinct_alerts
fix(alerting): deliver every distinct alert queued in one flush window
2026-09-21 14:49:54 -07:00
mateo-berri
b0305d0a31 test(router): call both mid-stream fallback attempt functions directly
The router coverage gate wants every router.py function reached by name from
a router test. The two per-endpoint attempt functions were only reached through
their callers, so each now has a direct test proving the per-request controls
carrier never reaches the provider call and every hop's stream comes back wrapped.
2026-09-21 14:48:42 -07:00
Yujong Lee
b926cf998a chore: merge main into litellm_rust_secrets_azure_key_vault
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:21 +00:00
Yujong Lee
bc641f01ae Merge remote-tracking branch 'origin/main' into litellm_native_azure_blob_cache 2026-09-21 21:47:19 +00:00
yujonglee
ebb4d230f8
Merge pull request #42300 from BerriAI/litellm_python_interop_foundation
fix(rust): preserve Python settings semantics at the native boundary
2026-09-21 14:46:37 -07:00
yujonglee
162e5c4338
Merge pull request #42303 from BerriAI/litellm_rust_secrets_cyberark
feat(rust): add CyberArk Conjur secret manager backend
2026-09-21 14:45:39 -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
Yujong Lee
2f54f6078d chore: merge main into litellm_native_azure_blob_cache
Combines the Redis cluster bridge changes with the Azure Blob variant and
keeps account URL query parameters when building the container URL

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:43:08 +00:00
kerry-berri
75dc9082df
Merge pull request #42066 from BerriAI/litellm_cost_shard_batches_realtime
test(integration): batch and realtime cost cases
2026-09-21 14:43:01 -07:00
mateo-berri
51eaad657b fix(proxy): look the entity spend table up lazily so only the selected batcher table is touched 2026-09-21 14:42:23 -07:00
kerry-berri
5e746d95dc
Merge pull request #42333 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 1 model
2026-09-21 14:41:07 -07:00
kerry
ebad623079 Merge remote-tracking branch 'origin/main' into litellm_cost_shard_batches_realtime 2026-09-21 21:34:05 +00:00
kerry-berri
29792c45a9
Merge pull request #42060 from BerriAI/litellm_cost_shard_proxy_behaviour
test(integration): proxy behaviour cost cases
2026-09-21 14:33:47 -07:00
Yujong Lee
c7c0afb1f0 ci(rust): raise the native wheel size gate to 40 MB
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:33:06 +00:00
yucheng-berri
506cecfb0b
Merge pull request #42267 from BerriAI/litellm_otel_v2_langfuse_ocr_output
fix(otel v2): map OCR page markdown onto the generation output
2026-09-21 14:33:02 -07:00
Yujong Lee
9c48e137dc fix(rust): preserve HTTP host and TLS error context
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:32:33 +00:00
Yujong Lee
27808b51a0 chore(rust): drop interop planning note
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:32:33 +00:00
Yujong Lee
5aeb367d2a fix(rust): preserve Python settings coercion at the native boundary 2026-09-21 21:32:33 +00:00
Yujong Lee
52216df1ff fix(rust): preserve structured conversion semantics 2026-09-21 21:32:33 +00:00
Yujong Lee
a41061be43 docs(rust): plan Python interop foundation 2026-09-21 21:32:33 +00:00
berriai-litellm-provider-info-sync[bot]
8c64f82bb3
chore(prices): sync OpenRouter prices: 1 model
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 21:31:16 +00: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
kerry
1e54b4f286 Merge remote-tracking branch 'origin/litellm_cost_shard_proxy_behaviour' into litellm_cost_shard_batches_realtime 2026-09-21 21:25:05 +00:00
kerry
924ca78d06 Merge remote-tracking branch 'origin/main' into litellm_cost_shard_proxy_behaviour 2026-09-21 21:24:54 +00:00
Mateo Wang
124e5d6d53
Merge pull request #34358 from BerriAI/claude/e2e-tests-custom-endpoints-qxoi1o
test(e2e): replace custom endpoints_client with provider SDK clients
2026-09-21 14:24:38 -07:00
kerry-berri
34d5f9d41b
Merge pull request #42052 from BerriAI/litellm_cost_shard_provider_wires
test(integration): provider wire cost cases
2026-09-21 14:24:35 -07:00
Yujong Lee
4063658168 build(rust): drop native extension size limit bump, deferred to #42300
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:22:02 +00:00
Mateo Wang
4b9aa222a6
Merge pull request #42317 from BerriAI/litellm_redis_cluster_topology
feat(rust-cache): serve RedisClusterCache natively as a Redis topology
2026-09-21 14:21:54 -07:00
mateo-berri
a2ae80ec9b fix(router): wrap every Responses and Messages fallback hop for mid-stream failover
The /v1/responses and /v1/messages streaming wrappers only ever wrapped the
primary's stream, so a hop reached through the regular fallback chain had no
mid-stream handler: its failure re-raised, or the outer wrapper retried the
same entry with a fresh attempted set and never reached the rest of the list.
Every attempt of the chain now runs through a per-endpoint attempt function
that wraps its own stream, mirroring chat completions, and the per-request
fallback and retry overrides ride a frozen carrier so each hop's re-entry
still sees them after the retry layer pops them.
2026-09-21 14:19:52 -07:00
mateo-berri
2f8bee053d test(alerting): inject the webhook client and extend the mapped test files 2026-09-21 14:16:37 -07:00
Yassin Kortam
f6c69af427
Merge pull request #41101 from hMED22/litellm_add_edenai_provider
feat(edenai): add Eden AI provider across chat, Responses, Messages, embeddings, audio, images and video
2026-09-21 16:16:28 -05:00