Skip to content
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
255 commits
Select commit Hold shift + click to select a range
d96477a
fix(proxy): preserve decision request bodies under token limits (#43920)
shrey-berri Oct 1, 2026
6f123b7
test(proxy): migrate DB and Redis backed proxy tests into tests/integ…
devin-ai-integration[bot] Oct 1, 2026
d9f7324
feat(lens): track worker spend through virtual keys (#43989)
moe-berri Oct 1, 2026
39e3195
test(proxy): move auth, hooks, policy_engine and client tests into te…
devin-ai-integration[bot] Oct 1, 2026
91ff045
fix(ui): give model leaderboard a distinct trophy icon (#44036)
moe-berri Oct 1, 2026
6ca90b9
test(ci): repair stale tests and flaky CI infrastructure (#43983)
yuneng-berri Oct 1, 2026
73072b8
test(proxy): move management_endpoints, management_helpers and guardr…
devin-ai-integration[bot] Oct 1, 2026
d24240c
feat(ui): agent traces open in a side drawer with a chat-style run vi…
Oct 1, 2026
bfd3f39
feat(s3_v2): add s3_partition_granularity option for hourly S3 folder…
devin-ai-integration[bot] Oct 1, 2026
259c166
refactor(lens)!: rename internal engine code and API (#44034)
moe-berri Oct 1, 2026
25109a5
test(proxy): move utils, agent_endpoints and endpoint tests into test…
devin-ai-integration[bot] Oct 1, 2026
24584d3
test(proxy): move proxy_server, _experimental and db tests into tests…
devin-ai-integration[bot] Oct 1, 2026
a76b59d
test(proxy): move middleware, spend_tracking, pass_through, common_ut…
devin-ai-integration[bot] Oct 1, 2026
2cfa5ec
test(proxy): delete the legacy proxy test tree and shard tests/unit/p…
devin-ai-integration[bot] Oct 1, 2026
63b6e7f
chore(deps): bump pypdf from 6.16.2 to 6.19.0 (#44033)
dependabot[bot] Oct 1, 2026
e725832
chore(deps): drop unused pytest-postgresql dev dependency (#44056)
yuneng-berri Oct 1, 2026
c030191
docs(proxy): point mcp_server test references at tests/unit/proxy (#4…
yuneng-berri Oct 1, 2026
fcf8797
feat(ui): show daily token totals on the model leaderboard (#44044)
Oct 1, 2026
bba85f0
chore(lint): remove the LIT002 mutable-construction rule (#43971)
yuneng-berri Oct 1, 2026
ca05eca
feat(vertex-ai): add vertex_ai/xai/grok-4.7 pricing (#44059)
berriai-litellm-provider-info-sync[bot] Oct 1, 2026
5e58822
feat(ui): drop the Beta badge from the Cost Optimization nav item (#4…
devin-ai-integration[bot] Oct 1, 2026
0da00d4
test(e2e): bill Sail windows that synchronous calls can still use (#4…
yuneng-berri Oct 1, 2026
65a316f
ci(circleci): test Redis behavior against local Redis and print short…
yuneng-berri Oct 1, 2026
ba8cd1e
fix(router): keep silent_model out of embedding provider requests (#4…
devin-ai-integration[bot] Oct 1, 2026
ac8c5aa
fix(cost-map): add perplexity, openrouter, voyage and nebius models a…
devin-ai-integration[bot] Oct 1, 2026
008fcb4
feat(tool-policies): show the user who owns the key that discovered a…
devin-ai-integration[bot] Oct 1, 2026
eb10333
feat(proxy): gzip buffered responses for clients that accept it (#44052)
tin-berri Oct 1, 2026
163ebcc
fix(auto-router): show actual and baseline spend for historical savin…
tin-berri Oct 1, 2026
be67fce
refactor(proxy): inject tracing receiver and access context (#44035)
yujonglee-berri Oct 1, 2026
ec60582
feat: improve trace ingestion and trace details (#43975)
yujonglee-berri Oct 1, 2026
a38fff6
fix(proxy): enforce key/team vector_stores allowlist on /v1/rag/query…
devin-ai-integration[bot] Oct 1, 2026
f88ac74
feat(lens): move traces and setup into Lens (#44068)
moe-berri Oct 1, 2026
a14af73
test(proxy-extras): run the db push timeout hint test without a datab…
yuneng-berri Oct 1, 2026
c66c828
fix(proxy-extras): build the SpendLogs indexes in the migration job i…
devin-ai-integration[bot] Oct 1, 2026
d7e6154
fix(mcp): resolve team-granted toolsets for non-admin keys and dashbo…
devin-ai-integration[bot] Oct 1, 2026
610576d
fix(bedrock): accept Converse messages with no content key (#43936)
devin-ai-integration[bot] Oct 1, 2026
0f6a06a
feat: add litellm.agent() to run claude code, codex, opencode and dee…
Oct 1, 2026
4619633
feat(ui): add test trace, tracing key and otel endpoints to tracing s…
Oct 1, 2026
03743ae
feat(proxy): add LITELLM_DISABLE_LAZY_ROUTES to register optional rou…
devin-ai-integration[bot] Oct 1, 2026
4b1d9bf
test(e2e): keep 1ms-timeout deployments off the provider cache (#44082)
yuneng-berri Oct 1, 2026
aa601ce
refactor(repositories): daily activity repository with centralized bo…
devin-ai-integration[bot] Oct 1, 2026
339f5b6
fix(bedrock): add beta for mid-conversation tool changes (#43833)
shrey-berri Oct 1, 2026
54a51c8
feat(proxy): bounded daily activity routes for all usage entities (#4…
devin-ai-integration[bot] Oct 1, 2026
ee3eff2
feat(ui): usage pages consume bounded daily activity routes (#43409)
devin-ai-integration[bot] Oct 2, 2026
3a91029
build(docker): drop the no-op PROXY_EXTRAS_SOURCE switch from the non…
yuneng-berri Oct 2, 2026
9351463
fix(proxy): persist SSO display name as user_alias on login (#44065)
devin-ai-integration[bot] Oct 2, 2026
0737e26
fix(cost-map): restore later azure Models API retirement dates and da…
berriai-litellm-provider-info-sync[bot] Oct 2, 2026
cc42a35
feat(lens): simplify setup and investigation workflow (#44089)
moe-berri Oct 2, 2026
6a8e0a2
chore(cost-map): sync openrouter prices from the models API (#44105)
berriai-litellm-provider-info-sync[bot] Oct 2, 2026
1e75147
fix(providers): keep thinking display updates beta (#43969)
shrey-berri Oct 2, 2026
e3c15c9
feat(rust): embed migration folders with a shared migrate! macro (#44…
devin-ai-integration[bot] Oct 2, 2026
ae6b762
refactor(tracing): normalize agent spans in Rust (#44071)
yujonglee-berri Oct 2, 2026
3f39fef
perf(traces): recalculate ClickHouse TTL info only on retention chang…
devin-ai-integration[bot] Oct 2, 2026
123237c
fix(proxy-extras): bound the lock waits of the partitioned SpendLogs …
devin-ai-integration[bot] Oct 2, 2026
309597d
build(deps): bump oauthlib to 4.0.0 to clear osv-scan (#43899)
devin-ai-integration[bot] Oct 2, 2026
1eadd7a
fix(ui): label lens trace services as agents (#44116)
Oct 2, 2026
2b51f2f
fix(ui): split the KeyActivityPanel condition chains to bring the lin…
devin-ai-integration[bot] Oct 2, 2026
d729f97
bump: litellm-enterprise 0.1.72 -> 0.1.73, litellm-proxy-extras 0.4.1…
yuneng-berri Oct 2, 2026
b9e71e9
feat(mcp): add Microsoft 365 (Graph) server to the MCP catalog (#43099)
devin-ai-integration[bot] Oct 2, 2026
086d76a
chore(cost-map): add azure_ai deprecation dates from the Azure retire…
berriai-litellm-provider-info-sync[bot] Oct 2, 2026
c208306
fix(daily_activity): keep NULL entity ids when excluding entity ids (…
devin-ai-integration[bot] Oct 2, 2026
5ccb1a1
fix(proxy): reject non-canonical daily activity dates (#44143)
devin-ai-integration[bot] Oct 2, 2026
e6639d1
fix(proxy): always exit when database setup fails at boot (#44141)
devin-ai-integration[bot] Oct 2, 2026
8d28e8d
feat(tracing): add scoped SQL queries and schema-aware help (#44085)
yujonglee-berri Oct 2, 2026
826b21a
fix(guardrails): straiker v3 routes sk_agt_ keys to v3 and fails clos…
PhimmStraiker Oct 2, 2026
a93c396
test(integration): move legacy proxy, router and Redis tests into tes…
yuneng-berri Oct 2, 2026
58763b3
chore(cost-map): take azure_ai claude-sonnet-4-5 retirement date from…
berriai-litellm-provider-info-sync[bot] Oct 2, 2026
5a3a31e
fix(azure_storage): keep client call ids from sharing one Data Lake f…
devin-ai-integration[bot] Oct 2, 2026
d131c43
fix(guardrails): restore Azure guardrail get_user_prompt dispatch and…
devin-ai-integration[bot] Oct 2, 2026
e32b258
fix(proxy): keep tool payloads and logprobs unmasked in stored spend …
devin-ai-integration[bot] Oct 2, 2026
7d50a31
test(e2e): move live-provider legacy tests into tests/e2e (#44120)
yuneng-berri Oct 2, 2026
62a1b7f
chore(harness): remove banner comments, restating comments and dead i…
devin-ai-integration[bot] Oct 2, 2026
7be2983
test(straiker): assert a saved api_version v1 with an sk_agt_ key rou…
devin-ai-integration[bot] Oct 2, 2026
fe9b6fd
refactor(types): replace Any with proven types in 7 files (#43844)
devin-ai-integration[bot] Oct 2, 2026
615ed79
test(mcp): fire MCP client test deadlines on conditions instead of wa…
devin-ai-integration[bot] Oct 2, 2026
a5fef4b
fix(cost-map): add OpenAI TTS and GPT-5.x deprecation dates (#44175)
devin-ai-integration[bot] Oct 2, 2026
276fc9c
fix(tracing): unify ClickHouse storage configuration (#43941)
yujonglee-berri Oct 2, 2026
a7eb4ba
feat(docker): one-command quickstart that starts the gateway, Postgre…
misbahsy Oct 2, 2026
71788fe
fix(lens): simplify the example investigation preview (#44123)
moe-berri Oct 2, 2026
ebfec95
chore(helm): drop migrationJob values the chart never reads (#42141)
Bernedotcom2312 Oct 2, 2026
19da815
fix(ui): register tencent in the Add Model provider dropdown (#40924)
jimaldon Oct 2, 2026
6c2ede0
test: remove 130 legacy tests owned by stronger unit proofs (#44157)
devin-ai-integration[bot] Oct 2, 2026
2b85808
feat(mcp)!: disable stdio MCP servers by default (#44066)
yuneng-berri Oct 2, 2026
2c9a971
fix(proxy): exit when DATABASE_URL is set but the Prisma toolchain is…
devin-ai-integration[bot] Oct 2, 2026
3ae491a
fix(proxy): preserve state through composed lifespans (#44214)
tin-berri Oct 2, 2026
56bba4f
fix(oci): resolve the GenAI endpoint realm from the compartment OCID …
fede-kamel Oct 2, 2026
e5873ad
fix(chatgpt): preserve requested service tier in Responses calls (#40…
SteffanWolter Oct 2, 2026
4c648f1
fix(ui): leave unset callback select params out of the save payload (…
devin-ai-integration[bot] Oct 2, 2026
4758fce
fix(proxy-extras): hand libpq a root cert, not Prisma's sslcert, when…
devin-ai-integration[bot] Oct 2, 2026
0dc2340
feat: add Laya gateway and OSS classifier providers (#43626)
tin-berri Oct 2, 2026
8aaa766
fix(auto-router): count usage savings by selected UTC request day (#4…
tin-berri Oct 2, 2026
2584721
fix(lens): preserve framework agent names and GenAI message content (…
moe-berri Oct 2, 2026
b21e44c
feat(jwt): auto_register_map_existing_key maps JWT to the user's exis…
devin-ai-integration[bot] Oct 2, 2026
b1e0e9e
feat(ui): select Laya for OSS classification (#43768)
tin-berri Oct 2, 2026
f95446e
fix(otel): tolerate non-dict callback_settings.otel and ignore bare E…
devin-ai-integration[bot] Oct 2, 2026
f932e29
fix(proxy): carry key, team and project tags into pass-through spend …
devin-ai-integration[bot] Oct 2, 2026
c8cd885
feat(ui): add System One (Jev) tab to the playground (#44043)
devin-ai-integration[bot] Oct 2, 2026
c98a15b
bump: litellm-proxy-extras 0.4.104 -> 0.4.105 (#44234)
devin-ai-integration[bot] Oct 2, 2026
ac59ec6
chore(prices): add xAI grok-voice-transcribe-1.0 deprecation date (#4…
berriai-litellm-provider-info-sync[bot] Oct 2, 2026
4a847ac
fix(exa): fall back to highlights/summary when text is missing (#42213)
wakqasahmed Oct 2, 2026
0238ec9
fix(scim): apply path-less group PATCH ops instead of storing them un…
devin-ai-integration[bot] Oct 2, 2026
9fb327e
fix(lens): run investigations with configured wildcard models (#44233)
moe-berri Oct 2, 2026
6263575
fix(ui): shrink the sidebar logo so it stops outweighing page titles …
yuneng-berri Oct 2, 2026
481a403
feat(tracing): support claude agent sdk traces with agent name, logo …
Oct 2, 2026
ba75a58
fix(ui): make model leaderboard chart bars wide and readable (#44249)
devin-ai-integration[bot] Oct 2, 2026
9b5562f
test: repair stale and polluting tests red on scheduled main CI (#44229)
yuneng-berri Oct 2, 2026
688d791
feat(traces): type queries and align read access with log visibility …
yujonglee-berri Oct 2, 2026
485ad76
chore(ui): untrack tsconfig.tsbuildinfo and gitignore *.tsbuildinfo (…
devin-ai-integration[bot] Oct 2, 2026
04bc354
refactor(mcp): extract upstream preparation and support modern client…
joshua-berri Oct 2, 2026
aef0a53
fix(lens): default to traces and restore closed span details (#44260)
moe-berri Oct 2, 2026
8b4de39
fix(bedrock): surface unrecognized converse-stream event frames inste…
devin-ai-integration[bot] Oct 2, 2026
a206882
perf(proxy): batch daily model usage writes instead of upserting per …
Oct 2, 2026
b94eaa6
test(integration): opt the config pass-through spend-log case into au…
yuneng-berri Oct 2, 2026
a292fd4
test: fix three order-dependent and timing-flaky tests (#44271)
yuneng-berri Oct 2, 2026
22bd49e
fix(ui): make the Lens traces refresh button always clickable (#44252)
devin-ai-integration[bot] Oct 2, 2026
f498176
feat(lens): add sample previews and improve setup and worker feedback…
moe-berri Oct 3, 2026
9e31afb
chore(openrouter): sync prices, limits and deprecation dates from the…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
dd86ca5
refactor(traces): type the ClickHouse query help response (#44285)
devin-ai-integration[bot] Oct 3, 2026
b877a38
fix(proxy): stop queued registry read-throughs spending the resync bu…
yuneng-berri Oct 3, 2026
b28ce93
feat(lens): show investigation progress as one staged bar with time l…
Oct 3, 2026
4b9f990
refactor(ui): compose dashboard pages with shared layouts (#44306)
devin-ai-integration[bot] Oct 3, 2026
677205b
fix(proxy): share ownership permissions for spend logs and traces (#4…
yujonglee-berri Oct 3, 2026
8b11b68
fix(proxy-extras): retry P3009 when a peer already recovered the name…
devin-ai-integration[bot] Oct 3, 2026
c5c0a48
fix(bedrock): price amazon nova 2 pro preview at the standard tier (#…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
f63d989
feat: add Bespoke Nimble gateway and OSS classifier support (#44246)
tin-berri Oct 3, 2026
dac31e3
fix(anthropic): stop repeating streamed thinking text in the signatur…
devin-ai-integration[bot] Oct 3, 2026
fe91088
fix(responses): drop bridge-minted reasoning items from OpenAI replay…
devin-ai-integration[bot] Oct 3, 2026
5dbe4f9
feat(bedrock): drop lookaround regex patterns from tool schemas for C…
devin-ai-integration[bot] Oct 3, 2026
233db9f
feat(bedrock): serve gpt-5.6+ chat completions natively by default, w…
devin-ai-integration[bot] Oct 3, 2026
2ccb7ed
feat(lens): issue briefs with problem, user goal, outcome and test ca…
Oct 3, 2026
ca1994e
fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged…
devin-ai-integration[bot] Oct 3, 2026
f9a32ff
fix(cost): price rule-only model names at the deployment's rate (#44144)
devin-ai-integration[bot] Oct 3, 2026
db14931
fix(auto-router): attribute router-day savings without spend logs or …
tin-berri Oct 3, 2026
6b62225
test(integration): let run.py select cells by pytest node id (#44319)
devin-ai-integration[bot] Oct 3, 2026
54260be
fix(bedrock): honor unsupported reasoning effort levels for OpenAI GP…
Aasif-Multani Oct 3, 2026
80a2f4d
feat(lens): add preset watch-for checks to investigation setup (#44313)
Oct 3, 2026
ad566c9
fix(proxy): use OpenAI workload identity federation tokens on /openai…
6matt Oct 3, 2026
8596fe9
feat(interactions): durable cross-pod settlement for background inter…
devin-ai-integration[bot] Oct 3, 2026
2394fc3
fix(streaming): keep the finish_reason of the provider's last content…
joeym82956 Oct 3, 2026
5ce8163
fix(bedrock): send the anthropic-workspace-id header to Bedrock Mantl…
kohjunhao Oct 3, 2026
1191799
fix(guardrails): run unified guardrails on /v1/images/edits (#44195)
michelligabriele Oct 3, 2026
0d5ea45
feat(scaleway): add rerank support (#44160)
ankit373 Oct 3, 2026
8efb4a2
fix(vector_stores): return managed file ids from vector store file li…
devin-ai-integration[bot] Oct 3, 2026
6d8434f
fix(proxy): return 4xx instead of 500 for missing required params, in…
devin-ai-integration[bot] Oct 3, 2026
5d42cb7
fix(guardrails): encrypt guardrail litellm_params secrets at rest (#4…
yucheng-berri Oct 3, 2026
12d4b75
fix(search_tools): encrypt search tool litellm_params at rest (#43631)
yucheng-berri Oct 3, 2026
caee45f
feat(roi): add GitLab sources and branch cost attribution (#44324)
moe-berri Oct 3, 2026
0fce5bc
fix(model-prices): mark azure us/eu responses-only models as mode res…
devin-ai-integration[bot] Oct 3, 2026
308fe11
chore: sync upstream 2026-10-03
claude Oct 3, 2026
a76ba8c
revert(cost): revert "fix(cost): price rule-only model names at the d…
devin-ai-integration[bot] Oct 3, 2026
2caddeb
chore: restore fork patches dropped/revealed by the upstream sync
claude Oct 3, 2026
4ddc5c6
fix: restore sync-dropped imports/lines and CI-blocking fixes
claude Oct 3, 2026
a94c76b
fix(lens): copy the prompts/ package into the lens-worker image
claude Oct 3, 2026
373398b
fix: restore sync-dropped LIT010 annotations and DRY kwargs usage
claude Oct 3, 2026
48a3599
fix: address Claude Code Review findings and quarantine upstream test…
claude Oct 3, 2026
7b432d7
fix(proxy): stamp the client alias on a copy of each streamed chunk s…
devin-ai-integration[bot] Oct 3, 2026
d96e56c
revert(responses): revert "fix(responses): keep gpt-5.4/5.5 tool call…
devin-ai-integration[bot] Oct 3, 2026
6a15c17
chore(lint): raise TID251/LIT001/LIT010 ceilings for the 2026-10-03 sync
claude Oct 3, 2026
0c86d6b
refactor(dashboard): migrate to zod 4 and openai 6 (#44345)
devin-ai-integration[bot] Oct 3, 2026
6f0ada3
chore(lint): raise basedpyright reportUnusedFunction/reportUnusedVari…
claude Oct 3, 2026
8e32d45
feat(ui): move LiteAdmin into the header with a docked side panel (#4…
tin-berri Oct 3, 2026
5724117
fix(responses): merge bridged tool calls into the same choice as the …
devin-ai-integration[bot] Oct 3, 2026
280f3d0
Revert "chore(lint): raise basedpyright reportUnusedFunction/reportUn…
claude Oct 3, 2026
0894f02
Revert "chore(lint): raise TID251/LIT001/LIT010 ceilings for the 2026…
claude Oct 3, 2026
64b839c
fix: guard OTLP trace-request check against non-HTTP connections
claude Oct 3, 2026
241d372
fix: restore CRLF line endings on 4 merge-corrupted bundled icon SVGs
claude Oct 3, 2026
ff99ba6
fix(tests): avoid TQ009 child-interpreter isolation finding
claude Oct 3, 2026
58894f3
chore(lint): raise LIT001/LIT010/reportUnusedFunction/reportUnusedVar…
claude Oct 3, 2026
ac6a68c
Revert "chore(lint): raise LIT001/LIT010/reportUnusedFunction/reportU…
claude Oct 3, 2026
ed35ce1
fix(guardrails): never forward litellm credential headers to generic_…
claude Oct 3, 2026
946f467
chore(lint): raise LIT001/LIT010/reportUnusedFunction/reportUnusedVar…
claude Oct 3, 2026
124a007
fix(lens): remove dead decide closure in investigate_stored
claude Oct 3, 2026
aa36a9d
Merge remote-tracking branch 'origin/chore/sync-upstream-2026-10-03' …
claude Oct 3, 2026
cb00dbe
feat(ui): improve trace inspection and ROI estimation (#44351)
moe-berri Oct 3, 2026
1bee42f
fix: stop one bad span and lens CAS exhaustion from aborting whole ba…
claude Oct 3, 2026
992b6a2
Merge remote-tracking branch 'origin/litellm_internal_staging' into c…
claude Oct 3, 2026
09313bc
refactor(ui): reorganize Lens dashboard components (#44354)
devin-ai-integration[bot] Oct 3, 2026
544ec7a
fix: preserve the single-bad-span reject contract for OTLP ingestion
claude Oct 3, 2026
e92bd50
refactor(ui): inject Lens backends as services instead of a fake HTTP…
devin-ai-integration[bot] Oct 3, 2026
d260765
refactor: clean up fresh tech debt from 2026-10-02 (#44362)
devin-ai-integration[bot] Oct 3, 2026
d15f58f
fix: keep the first MAX_SPANS spans instead of rejecting the whole ex…
claude Oct 3, 2026
cf17288
chore(lint): raise LIT001/LIT010 ceilings for the 2026-10-03 sync
claude Oct 3, 2026
aef36ca
Revert "chore(lint): raise LIT001/LIT010 ceilings for the 2026-10-03 …
claude Oct 3, 2026
bf30f0f
fix: log a warning when OTLP truncation drops spans past the cap
claude Oct 3, 2026
205f243
fix(harness): broaden LocalSandbox's secret env-var heuristic
claude Oct 3, 2026
e340e54
feat(traces): tracing development seed (#44363)
devin-ai-integration[bot] Oct 3, 2026
e768ad5
refactor(types): replace Any with proven types in 4 files (#44370)
devin-ai-integration[bot] Oct 3, 2026
4ece6c9
build(deps): suppress unfixed braces GHSA-vfj7-8cjw-p6xm to clear osv…
devin-ai-integration[bot] Oct 3, 2026
66a422e
fix(azure): add MAI-Image max_input_tokens from models sold directly …
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
53d2ab6
fix(proxy): emit postgres service spans only on real DB reads in auth…
devin-ai-integration[bot] Oct 3, 2026
564d236
fix(otel): nest cache spans under their operation and name service sp…
devin-ai-integration[bot] Oct 3, 2026
797353f
fix(otel): name postgres service spans by operation and table (#44240)
devin-ai-integration[bot] Oct 3, 2026
4c6c84a
perf(proxy): stop prompt-cache eligibility from tokenizing the whole …
devin-ai-integration[bot] Oct 3, 2026
a5e9f27
fix(proxy): keep the database error when the log_db_metrics failure h…
devin-ai-integration[bot] Oct 3, 2026
231a46e
feat(azure): add azure_ai/kimi-k2-thinking from Azure Kimi pricing pa…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
b024950
feat(harness): add Harness.TOOL_LOOP, a minimal in-process tool-calli…
devin-ai-integration[bot] Oct 3, 2026
8b1990b
feat(decisions): add unified /v1/decisions endpoint for Jev-compatibl…
devin-ai-integration[bot] Oct 3, 2026
ad8baba
fix(lens): paginate trace reads within ClickHouse limits (#44384)
moe-berri Oct 3, 2026
f0abe1b
feat(lens): live dot field timeline and full-screen traces view (#44390)
Oct 3, 2026
4732647
feat(ui): make LiteAdmin enterprise-only (#44399)
tin-berri Oct 3, 2026
6c32384
fix(bedrock): stop emitting Converse cachePoint blocks for Kimi K3 (#…
devin-ai-integration[bot] Oct 3, 2026
a849093
test(cost): pin OpenAI reported web search count with mixed actions (…
devin-ai-integration[bot] Oct 3, 2026
a57cdfd
fix(ci): give the pass-through auth regression test a real FastAPI ap…
devin-ai-integration[bot] Oct 3, 2026
9fe6442
fix(azure): add azure_ai/flux.2-pro input token limit from the models…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
5019013
fix(lens): batch run reads and reset trace pagination (#44398)
moe-berri Oct 3, 2026
af36e5c
fix(lens): preserve full trace access and expose investigation failur…
moe-berri Oct 3, 2026
9e9c29f
feat: add make lens-dev for one-command lens local dev (#44413)
Oct 3, 2026
1b98748
fix(bedrock): honor the per-request timeout on Converse and Invoke st…
devin-ai-integration[bot] Oct 3, 2026
d306d6d
feat(traces): render curated SQL examples from shared files (#44388)
devin-ai-integration[bot] Oct 3, 2026
6717480
fix(model_prices): registry audit 2026-10-03, add cohere embed v5, gr…
devin-ai-integration[bot] Oct 3, 2026
f445e46
refactor(traces): extract snapshot cache (#44424)
devin-ai-integration[bot] Oct 3, 2026
dd31692
feat(lens): always-on investigations with findings and investigations…
Oct 3, 2026
fd14e51
feat(docker): add a Windows quickstart in PowerShell, and a styled te…
misbahsy Oct 3, 2026
fe683ea
feat(proxy): serve a Codex-native model catalog with per-model servic…
devin-ai-integration[bot] Oct 3, 2026
e9bf2cf
refactor(types): replace Any with proven types in 9 files (#44389)
devin-ai-integration[bot] Oct 3, 2026
9a4b195
fix(proxy): treat Postgres connection exhaustion as DB unavailable, n…
devin-ai-integration[bot] Oct 3, 2026
41a3781
fix(proxy): treat Postgres connection exhaustion as backpressure, not…
devin-ai-integration[bot] Oct 3, 2026
98337c9
fix(lens): release budget reservations when the analysis model call f…
devin-ai-integration[bot] Oct 3, 2026
0ea166c
fix(mcp): preserve upstream tool schemas and parameter headers (#44425)
joshua-berri Oct 3, 2026
01b4ffe
fix(bedrock_mantle): route Claude chat completions to the native Mess…
devin-ai-integration[bot] Oct 3, 2026
c7e60f0
fix(tracing): preserve spend identity and gateway correlation (#44421)
yujonglee-berri Oct 3, 2026
1a70233
feat(roi): measure shipping velocity, quality, and recorded spend (#4…
moe-berri Oct 3, 2026
5f96998
fix(azure): set text-embedding max input to 8192 from the models sold…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
427158e
feat(ui): show invitation and reset password links in a copyable fiel…
yuneng-berri Oct 3, 2026
cb17588
feat(lens): coordinate worker releases and bundled installs (#44428)
moe-berri Oct 3, 2026
1ef0fe9
fix(auth): resolve hidden model_group_alias entries in the zero-cost …
devin-ai-integration[bot] Oct 3, 2026
6d73fa6
fix(vertex_ai): forward system and tools to partner model count_token…
devin-ai-integration[bot] Oct 3, 2026
21ecd0a
fix(traces): reject conflicting spend aliases and unrelated HTTP sibl…
devin-ai-integration[bot] Oct 3, 2026
4d30f8c
chore(cost-map): add azure_ai/kimi-k2-thinking retirement date from t…
berriai-litellm-provider-info-sync[bot] Oct 3, 2026
f0eda6d
fix(health): probe Bedrock Mantle Claude deployments over the Anthrop…
devin-ai-integration[bot] Oct 4, 2026
dfdd496
fix(tests): match the OS bind error in the owned-proxy port-race retr…
devin-ai-integration[bot] Oct 4, 2026
0ed1c08
feat(anthropic): workload identity federation and pluggable identity …
devin-ai-integration[bot] Oct 4, 2026
f850b2c
test(integration): exact four-part translation cases on a shared fake…
devin-ai-integration[bot] Oct 4, 2026
4b67a2b
feat(roi): default people and branch lists to matched accounts (#44465)
moe-berri Oct 4, 2026
6370104
feat(enterprise): bundle LiteAdmin Slack with native gateway login (#…
tin-berri Oct 4, 2026
9d16412
fix(caching): count tool_call cache_control marks in the injection ce…
devin-ai-integration[bot] Oct 4, 2026
a66adb4
chore(cost-map): sync openrouter prices from the models API (#44466)
berriai-litellm-provider-info-sync[bot] Oct 4, 2026
8520626
fix(lens): preserve approved worker digests and harden its image (#44…
moe-berri Oct 4, 2026
62fb808
feat: improve Lens dev seeding and live UI (#44468)
devin-ai-integration[bot] Oct 4, 2026
c80e6e2
test(ui): wait for step search value to settle in TraceDrawer test (#…
devin-ai-integration[bot] Oct 4, 2026
5ddcc45
feat(ui): share trace drawer as a closable SidePanel and polish Lens …
devin-ai-integration[bot] Oct 4, 2026
5d513d8
fix(lens): align source setup with available worker images (#44476)
moe-berri Oct 4, 2026
b61376a
feat(sdk): add run_tool_loop and arun_tool_loop helpers (#44381)
devin-ai-integration[bot] Oct 4, 2026
2936307
feat(lens): guide setup through the first investigation (#44475)
moe-berri Oct 4, 2026
cf22deb
test(ci): fix six CircleCI test regressions on main (#44429)
devin-ai-integration[bot] Oct 4, 2026
984b413
fix(proxy-extras): log v1 migration failures at ERROR so LITELLM_LOG=…
devin-ai-integration[bot] Oct 4, 2026
7ec374a
chore: sync upstream 2026-10-04
claude Oct 4, 2026
e4219bf
fix(ci): reformat harness sandbox, quarantine new ROI Codecov upload gap
claude Oct 4, 2026
4b4db66
chore(lint): raise lint-budget ceilings to the 2026-10-04 sync's totals
claude Oct 4, 2026
d25715b
chore(lint): raise basedpyright lint-budget ceilings to the 2026-10-0…
claude Oct 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
134 changes: 39 additions & 95 deletions .circleci/config.yml

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions .circleci/scripts/run_integration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,12 @@ start_proxy() {
"${database_env[@]}" REDIS_HOST="$REDIS_HOST" REDIS_PORT="$REDIS_PORT" \
INTEGRATION_UPSTREAM_URL="$INTEGRATION_UPSTREAM_URL" \
LITELLM_MASTER_KEY="$LITELLM_MASTER_KEY" LITELLM_SALT_KEY="$LITELLM_SALT_KEY" LITELLM_UI_PATH="$LITELLM_UI_PATH" PROXY_BASE_URL="http://127.0.0.1:$port" \
LITELLM_MODE=PRODUCTION STORE_MODEL_IN_DB=True "${cost_map_env[@]}" \
LITELLM_LICENSE="${LITELLM_LICENSE:-}" \
LITELLM_MODE=PRODUCTION STORE_MODEL_IN_DB=True LITELLM_ENABLE_MCP_STDIO=true "${cost_map_env[@]}" \
AWS_EC2_METADATA_DISABLED=true DO_NOT_TRACK=1 COVERAGE_FILE="$coverage_data" \
"${proxy_command[@]}" --config tests/integration/proxy_config.yaml \
--host 127.0.0.1 --port "$port" --num_workers 1 --telemetry False \
--use_prisma_db_push --enforce_prisma_migration_check \
--use_prisma_db_push \
> "$results/$log_name" 2>&1 &
launched_pid=$!
}
Expand All @@ -190,7 +191,7 @@ if [ "$suite" = management ] || [ "$suite" = mcp ]; then
fi

if [ "$suite" = providers ]; then
INTEGRATION_RUN_ID="$integration_identity" .venv/bin/python -m pytest --noconftest -o addopts= \
INTEGRATION_RUN_ID="$integration_identity" .venv/bin/python -m pytest --tb=short --noconftest -o addopts= \
--strict-markers --strict-config -p no:pytest-retry -p no:rerunfailures --timeout=30 \
tests/e2e/test_provider_edge.py::TestReplayMode::test_content_drift_returns_the_miss_status_naming_both_keys \
tests/e2e/test_provider_edge.py::TestReplayMode::test_exhausted_key_returns_the_miss_status \
Expand Down Expand Up @@ -228,6 +229,7 @@ env -i PATH="$PATH" HOME="$HOME" PYTHONPATH="$PYTHONPATH" \
INTEGRATION_UPSTREAM_URL="$INTEGRATION_UPSTREAM_URL" \
INTEGRATION_WORKERS="${INTEGRATION_WORKERS:-1}" \
INTEGRATION_MASTER_KEY="$INTEGRATION_MASTER_KEY" LITELLM_MODE=PRODUCTION \
LITELLM_LICENSE="${LITELLM_LICENSE:-}" \
INTEGRATION_SEED="$INTEGRATION_SEED" \
INTEGRATION_ORDER_SEED="$INTEGRATION_ORDER_SEED" \
LITELLM_LOCAL_MODEL_COST_MAP=True AWS_EC2_METADATA_DISABLED=true DO_NOT_TRACK=1 \
Expand Down
8 changes: 6 additions & 2 deletions .circleci/scripts/unit_selection.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ legacy_paths() {
echo tests/unit/enterprise/proxy/hooks
echo tests/unit/enterprise/proxy/management_endpoints
echo tests/unit/enterprise/proxy/test_audit_logging_endpoints.py
echo tests/unit/enterprise/proxy/test_liteadmin.py
echo tests/unit/enterprise/enterprise_callbacks/test_prometheus_logging_callbacks.py ;;
enterprise-routing)
echo tests/unit/google_genai
Expand Down Expand Up @@ -77,6 +78,7 @@ legacy_paths() {
echo tests/unit/embeddings
echo tests/unit/endpoints
echo tests/unit/files
echo tests/unit/harness
echo tests/unit/images
echo tests/unit/interactions
echo tests/unit/messages
Expand Down Expand Up @@ -107,7 +109,7 @@ legacy_paths() {
echo tests/unit/proxy/test_update_spend.py
echo tests/unit/skills/test_skills_db.py ;;
proxy-db-endpoints-and-responses)
echo tests/unit/proxy/engine
echo tests/unit/proxy/lens
echo tests/unit/proxy/auth/test_models_fallback_endpoint.py
echo tests/unit/proxy/common_utils/test_check_batch_cost.py
echo tests/unit/proxy/common_utils/test_check_responses_cost.py
Expand All @@ -116,7 +118,7 @@ legacy_paths() {
echo tests/unit/proxy/google_endpoints/test_google_endpoint_routing.py
echo tests/unit/proxy/google_endpoints/test_google_gemini_proxy_request.py
echo tests/unit/proxy/public_endpoints/test_blog_posts_endpoint.py
echo tests/unit/proxy/response_polling/test_response_polling_handler.py
echo tests/unit/proxy/response_polling
echo tests/unit/proxy/test_custom_tokenizer_bug.py
echo tests/unit/proxy/test_get_favicon.py
echo tests/unit/proxy/test_get_image.py
Expand Down Expand Up @@ -145,12 +147,14 @@ legacy_paths() {
echo tests/unit/proxy/test_proxy_token_counter.py
echo tests/unit/proxy/test_server_root_path.py ;;
proxy-db-proxy-server-core)
echo tests/unit/proxy/test__lazy_features.py
echo tests/unit/proxy/test_aproxy_startup.py
echo tests/unit/proxy/test_proxy_server.py ;;
proxy-db-proxy-utils) echo tests/unit/proxy/test_proxy_utils.py ;;
proxy-extras) echo tests/unit/litellm_proxy_extras ;;
proxy-infra)
echo tests/unit/gateway
echo tests/unit/proxy/management
echo tests/unit/proxy/management_endpoints/test_roi_calculator_endpoints.py
echo tests/unit/proxy/roi_calculator ;;
responses-caching-types)
Expand Down
13 changes: 13 additions & 0 deletions .github/actions/cache-cargo-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ runs:
using: composite
steps:
- name: Restore the Cargo registry and target directory
if: github.ref == 'refs/heads/main'
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
Expand All @@ -34,3 +35,15 @@ runs:
key: ${{ runner.os }}-maturin-${{ inputs.profile }}-${{ hashFiles('litellm-rust/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-maturin-${{ inputs.profile }}-

- name: Restore the Cargo registry and target directory
if: github.ref != 'refs/heads/main'
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.cargo/registry
~/.cargo/git
litellm-rust/target
key: ${{ runner.os }}-maturin-${{ inputs.profile }}-${{ hashFiles('litellm-rust/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-maturin-${{ inputs.profile }}-
10 changes: 10 additions & 0 deletions .github/actions/cache-prisma-binaries/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ runs:
echo "version=${version}" >> "$GITHUB_OUTPUT"

- name: Restore Prisma binaries
if: github.ref == 'refs/heads/main'
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
# ~/.cache/prisma-python holds the npm install tree prisma-client-py
Expand All @@ -38,3 +39,12 @@ runs:
~/.cache/prisma-python
~/.cache/prisma
key: ${{ runner.os }}-prisma-binaries-${{ steps.version.outputs.version }}

- name: Restore Prisma binaries
if: github.ref != 'refs/heads/main'
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.cache/prisma-python
~/.cache/prisma
key: ${{ runner.os }}-prisma-binaries-${{ steps.version.outputs.version }}
25 changes: 25 additions & 0 deletions .github/actions/cache-uv-downloads/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: "Cache uv downloads"
description: >-
Restore the uv download cache on every run and save it only from main, so pull
requests reuse main's cache instead of evicting it with their own copies.

runs:
using: composite
steps:
- name: Restore and save the uv download cache
if: github.ref == 'refs/heads/main'
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ env.UV_CACHE_DIR }}
key: ${{ runner.os }}-uv-downloads-py${{ env.UV_PYTHON }}-${{ hashFiles('uv.lock') }}
restore-keys: |
${{ runner.os }}-uv-downloads-py${{ env.UV_PYTHON }}-

- name: Restore the uv download cache
if: github.ref != 'refs/heads/main'
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ env.UV_CACHE_DIR }}
key: ${{ runner.os }}-uv-downloads-py${{ env.UV_PYTHON }}-${{ hashFiles('uv.lock') }}
restore-keys: |
${{ runner.os }}-uv-downloads-py${{ env.UV_PYTHON }}-
3 changes: 3 additions & 0 deletions .github/actions/setup-uv-with-retries/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ runs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ inputs.version }}
save-cache: ${{ github.ref == 'refs/heads/main' }}

- name: Wait before attempt 2
if: steps.attempt-1.outcome == 'failure'
Expand All @@ -30,6 +31,7 @@ runs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ inputs.version }}
save-cache: ${{ github.ref == 'refs/heads/main' }}

- name: Wait before attempt 3
if: steps.attempt-2.outcome == 'failure'
Expand All @@ -41,3 +43,4 @@ runs:
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: ${{ inputs.version }}
save-cache: ${{ github.ref == 'refs/heads/main' }}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions .github/ci-coverage-allowlist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ description: >-
by a job nor listed here, so every entry below is a decision on the record.

test_paths:
- reason: >-
litellm.agent() end-to-end suite. It drives the real claude, codex and opencode CLIs and
deepagents against a live LiteLLM AI Gateway, so it needs those binaries on PATH plus
LITELLM_PROXY_API_BASE / LITELLM_PROXY_API_KEY, and skips without them. Run manually
before changing litellm/harness; the mocked coverage runs in tests/unit/harness and
tests/unit/llms/*/harness
paths:
- tests/harness_e2e
- reason: >-
The Rust/Python parity harness is run manually through its local CLI. Recorded replay,
fixture generation, and harness checks are intentionally outside pull request CI
Expand Down
1 change: 1 addition & 0 deletions .github/e2e-stack/select_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
r"|^tests/e2e/guardrails/test_presidio_masking_e2e\.py$"
r"|^tests/e2e/logging/test_otel_v2_langfuse_generation_output_e2e\.py$"
r"|^tests/e2e/logging/test_langsmith_batch_serialization_e2e\.py$"
r"|^tests/e2e/logging/test_s3_log_e2e\.py$"
r"|^tests/e2e/secret_manager/"
)
HARNESS: Final = re.compile(
Expand Down
Loading
Loading