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
Yuneng Jiang
1cc38f05f4
test(proxy): type the router settings source test parameters
2026-09-21 15:00:24 -07:00
Yujong Lee
58ffa8e4ce
refactor(rust): drop variable rebinding in s3 cache and bridge config
...
Also adds the startup_nodes parameter to the _CacheTestHandle.redis stub to match the merged runtime signature
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 22:00:09 +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
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
Yujong Lee
220b981ab4
test(rust): deduplicate the merged os import
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:53:18 +00: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
cf7234c6f4
chore(rust): refresh workspace lockfile
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:48:40 +00:00
Yujong Lee
c3c8c35cb2
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 21:48:32 +00:00
Yujong Lee
b0c1b86382
refactor(cache-qdrant-semantic): reuse qdrant-client serde payload conversion in tests
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:48:27 +00:00
Yujong Lee
a4fda8f0d8
refactor(cache-qdrant-semantic): reuse immutable indexing params
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:48:24 +00:00
Yujong Lee
e0e4850ec1
merge(main): integrate upstream secret manager changes
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:48:18 +00:00
mateo-berri
073260ce5b
test(e2e): retry the hang-up when the model answers inside the window
2026-09-21 14:48:04 -07:00
Yujong Lee
b71e64446c
fix(cache-qdrant-semantic): annotate indexing wait payloads
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
6a06f69972
fix(python-bridge): restore Qdrant dispatch after rebase
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
ff2ca804b5
fix(python-bridge): preserve Qdrant facade dispatch after rebase
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
acbec828db
fix(python-bridge): fall back to Python when qdrant_api_key changes after binding
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
632c95f87e
fix(python-bridge): make the Qdrant config tests tolerate an unset OPENAI_API_KEY
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
877d5da419
fix(cache-qdrant-semantic): wait for Qdrant upserts to be indexed
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
fbaa535657
fix(python-bridge): ignore class data defaults in the facade guard
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
93e9836524
feat(python-bridge): serve QdrantSemanticCache natively
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
8d41336a1e
test(cache-qdrant-semantic): cover backend contract against an in-process Qdrant
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
80c0ceb5e6
feat(cache-qdrant-semantic): add native Qdrant semantic cache backend
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
fc3844e991
refactor(cache-response): generalize ResponseCache over the backend context
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
0c72a94a84
feat(cache): add SemanticCacheContext and semantic error variants
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:56 +00:00
Yujong Lee
63c16fe5ac
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 21:47:35 +00:00
Yujong Lee
1509afe77e
Merge remote-tracking branch 'origin/main' into litellm_gcs_native_cache
2026-09-21 21:47:29 +00:00
Yujong Lee
9f4448f42f
chore(rust): merge main into litellm_gcs_native_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:47:29 +00:00
Yujong Lee
95c1ba5e1d
Merge remote-tracking branch 'origin/main' into litellm_native_redis_semantic_cache
2026-09-21 21:47:22 +00: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
Yujong Lee
f24244a1a4
Merge remote-tracking branch 'origin/main' into litellm_native_redis_semantic_cache
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# litellm-rust/crates/cache-redis/src/cache.rs
# litellm-rust/crates/cache-redis/src/cache/operations.rs
# 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 21:47:12 +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
Yujong Lee
3ebbb2af5b
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/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
# tests/test_litellm_rust/test_cache.py
2026-09-21 21:46:22 +00: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
Yujong Lee
4845beddc0
ci(rust): raise 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:44:26 +00:00
Yujong Lee
f43f9012f1
fix(rust): handle disk cache topology
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:44:24 +00: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
Yujong Lee
98e9e8c602
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 21:42:10 +00: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
Joshua Valluru
5ec61e7a0b
chore: merge main into MCP ordering fix
2026-09-21 14:36:41 -07:00
Yujong Lee
d90ff4a30b
refactor(rust): trim vault cert login endpoint
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 21:35:39 +00:00