Commit graph

53481 commits

Author SHA1 Message Date
Joshua Valluru
91e4b28262 ci: condition MCP integration runs on relevant changes
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
2026-10-01 18:43:35 -07:00
Joshua Valluru
6601ae61a9 test(mcp): protect the conformance baseline from silent gaps 2026-10-01 18:43:35 -07:00
Joshua Valluru
6e85c562a9 ci(mcp): correct conformance test and coverage reporting 2026-10-01 18:43:35 -07:00
Joshua Valluru
d1a045f4f4 test(mcp): avoid coverage import overhead in conformance peers 2026-10-01 18:43:35 -07:00
Joshua Valluru
e342a62a1a test(mcp): preserve stdio environment during coverage 2026-10-01 18:43:35 -07:00
Joshua Valluru
7e68b248f8 test(mcp): carry conformance coverage into stdio peers 2026-10-01 18:43:35 -07:00
Joshua Valluru
4003899c53 test(mcp): make selected-file checks independently runnable 2026-10-01 18:43:35 -07:00
Joshua Valluru
08de7765e1 test(mcp): isolate matrix helper import setup 2026-10-01 18:43:35 -07:00
Joshua Valluru
5713ad03cb fix(mcp): preserve request-only peer log consumers 2026-10-01 18:43:35 -07:00
Joshua Valluru
2c05e8bad8 fix(mcp): preserve the peer log schema for negotiation records 2026-10-01 18:43:35 -07:00
Joshua Valluru
d099c0f66f fix(mcp): retain complete requirements for full group runs 2026-10-01 18:43:35 -07:00
Joshua Valluru
072053dc47 fix(mcp): scope conformance requirements to selected files 2026-10-01 18:43:35 -07:00
Joshua Valluru
6422498897 test(mcp): require only emitted raw transport conformance checks 2026-10-01 18:43:35 -07:00
Joshua Valluru
fc2010de06 test(mcp): enforce complete revision and transport conformance 2026-10-01 18:43:35 -07:00
Joshua Valluru
1df0f738b0 chore(mcp): align regression paths and lint with current main
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
2026-10-01 18:43:14 -07:00
Joshua Valluru
42970ca1cf chore(mcp): document required session state mutability 2026-10-01 18:43:14 -07:00
Joshua Valluru
37b8f0dce3 test(mcp): isolate reload cooldown from shared discovery 2026-10-01 18:43:14 -07:00
Joshua Valluru
9906303fb4 fix(mcp): bound client terminated session retention 2026-10-01 18:43:14 -07:00
Joshua Valluru
e7b15b8bb6 ci(mcp): include mapped protocol regression tests in the existing shard 2026-10-01 18:43:14 -07:00
Joshua Valluru
fbb2a9cd5d fix(mcp): finish streamed responses before releasing session handlers 2026-10-01 18:43:14 -07:00
Joshua Valluru
def57abac8 fix(mcp): reject replay of explicitly terminated sessions 2026-10-01 18:43:14 -07:00
Joshua Valluru
05ee360a79 fix(mcp): route progress to the originating request stream 2026-10-01 18:43:14 -07:00
Joshua Valluru
84e15a90f0 test(mcp): verify omitted arguments through admitted and denied callers 2026-10-01 18:43:14 -07:00
Joshua Valluru
8b95189ee5 fix(mcp): accept omitted arguments on protocol tool calls 2026-10-01 18:43:14 -07:00
Joshua Valluru
a886e014bb test(mcp): cite pinned reference payload fixtures
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
2026-10-01 18:43:09 -07:00
Joshua Valluru
0db12da43e test(mcp): support standalone conformance helper execution 2026-10-01 18:29:35 -07:00
Joshua Valluru
ddf88dfdc8 fix(mcp): isolate helper coverage from test proxy startup 2026-10-01 18:29:35 -07:00
Joshua Valluru
0b9a1e1b4a test(mcp): call the advertised conformance tool name 2026-10-01 18:29:35 -07:00
Joshua Valluru
1b3627588f test(mcp): require complete reports payloads and process cleanup 2026-10-01 18:29:35 -07:00
Joshua Valluru
0b4f465921 test(mcp): verify forced cleanup of a stalled reference 2026-10-01 18:29:35 -07:00
Joshua Valluru
61e683f693 ci(mcp): publish conformance helper coverage 2026-10-01 18:29:35 -07:00
Joshua Valluru
056c6d927a test(mcp): verify conformance bridge fidelity and runner failure 2026-10-01 18:29:35 -07:00
Joshua Valluru
e50465654a test(mcp): use advertised fixture names without warming discovery 2026-10-01 18:29:35 -07:00
Joshua Valluru
4e05d745ea test(mcp): add pinned official conformance smoke checks 2026-10-01 18:29:35 -07:00
devin-ai-integration[bot]
123237c8a8
fix(proxy-extras): bound the lock waits of the partitioned SpendLogs index build (#44109)
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 18:28:50 -07:00
devin-ai-integration[bot]
3f39fef52f
perf(traces): recalculate ClickHouse TTL info only on retention changes (#44117)
Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-02 01:22:37 +00:00
yujonglee
ae6b762190
refactor(tracing): normalize agent spans in Rust (#44071)
* refactor(tracing): normalize agent spans in Rust

* refactor(tracing): generate dashboard trace types from API

* test(tracing): use complete trace response fixtures

* fix(ui): expose generated span error response type

* fix(tracing): retain full tool call payloads

* fix(tracing): preserve decoded attribute tuple shape

* fix(tracing): type consumed attributes as tuple
2026-10-01 18:01:20 -07:00
devin-ai-integration[bot]
e3c15c9d22
feat(rust): embed migration folders with a shared migrate! macro (#44104)
* feat(rust): embed migration folders with a shared migrate! macro

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

* fix(rust): enable syn proc-macro feature for litellm-migrate-macros

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

* fix(rust): reject signed versions and symlinks in migrate!

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

---------

Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:52:54 -07:00
shrey-berri
1e75147856
fix(providers): keep thinking display updates beta (#43969) 2026-10-01 17:42:02 -07:00
berriai-litellm-provider-info-sync[bot]
6a8e0a270a
chore(cost-map): sync openrouter prices from the models API (#44105)
Price-Sync: litellm-providers

Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com>
2026-10-01 17:24:51 -07:00
moe-berri
cc42a352cb
feat(lens): simplify setup and investigation workflow (#44089)
* feat(lens): simplify investigation setup and results

* fix(lens): pin worker with actionable failure diagnostics

* fix(lens): focus worker success on starting an investigation

* feat(lens): simplify investigation setup and worker defaults

* fix(lens): remove setup repetition and label billing access

* fix(lens): finish agent selection and setup readiness

* fix(lens): handle unavailable setup dependencies and restore UI build
2026-10-01 17:21:41 -07:00
berriai-litellm-provider-info-sync[bot]
0737e26463
fix(cost-map): restore later azure Models API retirement dates and date gpt-6.1-sol (#44072)
Price-Sync: litellm-providers

Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com>
Co-authored-by: kerry-berri <kerry@berri.ai>
2026-10-01 17:16:03 -07:00
devin-ai-integration[bot]
9351463755
fix(proxy): persist SSO display name as user_alias on login (#44065)
* fix(proxy): persist SSO display name as user_alias on login

Generic/Microsoft SSO already parsed the IdP display_name, first_name and last_name into the SSO result, but the user upsert only wrote user_email and user_role, so the Users table never showed a name. Store the display name (first + last as fallback) as user_alias on first login and on later logins of users whose alias is still empty; never overwrite an alias already set. Whitespace-only names are treated as missing.

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

* fix(proxy): keep stored user_email when SSO login carries no email claim

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

* revert: keep stored user_email change, login writes the IdP email as before

Reverts 47c65cecff. A stored email staying eligible for email-based account linking after the IdP stops sending it is not wanted; the PR goes back to the user_alias fix only

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

---------

Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:14:31 -07:00
yuneng-jiang
3a91029328
build(docker): drop the no-op PROXY_EXTRAS_SOURCE switch from the non-root image (#44097)
uv sync --frozen ignores --no-sources-package, so the "published" branch
already installed litellm-proxy-extras from the workspace (the shipped
main-stable non-root image records file:///app/litellm-proxy-extras in its
direct_url.json). Both branches ran the same install. Keep the single
uv sync that the main and database images use.
2026-10-01 17:06:08 -07:00
devin-ai-integration[bot]
ee3eff26cb
feat(ui): usage pages consume bounded daily activity routes (#43409)
Resolves LIT-8899

Usage, cost optimization, user and team pages read the aggregate, paginated key, search, model top key, cache leakage and export routes added by the lower layers instead of downloading every key's daily rows into the browser. Key detail, model top key and search failures render explicit errors with retry controls, Overall Usage shows a loader while the aggregate is in flight, Retry on a failed first key page shows the loading state while it refetches, a short query keeps the loader or first page error visible instead of No keys match, key paging advances by the server offset so a page of already loaded keys moves on and only an empty page ends paging, and search results are stored as rows so a new teams array from the parent does not restart an in-flight search, and the global Cost tab shows a loader instead of zero totals while the aggregate reloads.

Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 17:03:09 -07:00
devin-ai-integration[bot]
54a51c80df
feat(proxy): bounded daily activity routes for all usage entities (#43408)
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 16:57:23 -07:00
shrey-berri
339f5b6a4d
fix(bedrock): add beta for mid-conversation tool changes (#43833) 2026-10-01 16:42:46 -07:00
devin-ai-integration[bot]
aa601ce4e8
refactor(repositories): daily activity repository with centralized bounded usage queries (#43398)
Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 16:02:01 -07:00
yuneng-jiang
4b1d9bf148
test(e2e): keep 1ms-timeout deployments off the provider cache (#44082)
The timeout reliability tests rely on a 1ms deadline the real backend always
misses. With E2E_PROVIDER_CACHE on, the deployment pointed at the cache edge,
and its healthy sibling in the same test had already recorded a response for
the same canonical request, so the edge answered from Redis inside the 1ms read
window. Build 342 of litellm-e2e saw test_timeout_trips_cooldown_then_recovers
get a 200 from the timing-out deployment itself, with a recording made about
12 hours earlier. Both timeout helpers now register on the live provider path,
which PROVIDER_CACHE.md reserves for tests that need real provider timing
2026-10-01 15:54:02 -07:00
devin-ai-integration[bot]
03743ae020
feat(proxy): add LITELLM_DISABLE_LAZY_ROUTES to register optional routers at startup (#43911)
* feat(proxy): add LITELLM_DISABLE_LAZY_ROUTES to register optional routers at startup

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

* fix(proxy): register eager lazy routes at startup so late eager routes keep precedence

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

* refactor(proxy): share one optional-feature install path between lazy and eager registration

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

* docs(proxy): say eager lazy routes register at worker startup

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

* refactor(proxy): name the import callable passed to _install

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

* test(integration): prove a startup hook can drop eager lazy routes for good

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

* test(integration): strip the lazy-routes flag from the lazy-mode control proxies

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

* test(proxy): cover the lazy warmup route registering a feature

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

* ci(unit): run tests/unit/proxy/test__lazy_features.py in the proxy-server-core shard

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

* test(integration): audit cells for LITELLM_DISABLE_LAZY_ROUTES

Flag spellings, /openapi.json at boot, the warm-up route in both modes, /mcp/proxy ahead of the /mcp mount,
route table and OpenAPI parity with a fully warmed lazy proxy, a broken optional import in both modes, every
client SDK against the completion endpoints, a boot burst with a killed worker, and a restart

* fix(proxy): keep config pass-through routes ahead of eagerly registered features

With LITELLM_DISABLE_LAZY_ROUTES set, features registered before the proxy lifespan
added config pass-through endpoints, so a pass-through overlapping a feature path
(e.g. a self-hosted /langfuse) lost to the built-in route. Restore lazy mode's
registry order once startup finishes, without bringing back routes a startup hook removed

---------

Co-authored-by: ryan <ryan@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-01 22:50:41 +00:00