Commit graph

51721 commits

Author SHA1 Message Date
yuneng-jiang
65e36b0298
Merge pull request #45011 from BerriAI/litellm_pgb_bump_1103
chore(docker): bump pgbouncer to 1.26.0
2026-10-07 10:32:50 -07:00
yuneng
497a3b406b chore(docker): bump pgbouncer to 1.26.0 2026-10-07 06:53:40 +00:00
yuneng-jiang
68b1fe1b66
Merge pull request #44776 from BerriAI/litellm_chore_8a10a6
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
chore(release): refresh dependencies on stable/1.103.x and cut 1.103.4
2026-10-05 22:27:42 -07:00
Yuneng Jiang
0e6c47f8d1
chore: refresh uv.lock for 1.103.4 2026-10-05 18:54:46 -07:00
Yuneng Jiang
d040262bf8
bump: version 1.103.3 → 1.103.4 2026-10-05 18:54:27 -07:00
Yuneng Jiang
dc36db371c
chore(deps): bump source-map-js in the vscode-extension lockfile 2026-10-05 18:52:52 -07:00
Yuneng Jiang
7679ae853f
chore(deps): bump source-map-js and smol-toml in the dashboard lockfile 2026-10-05 18:52:52 -07:00
Yuneng Jiang
0c1ed2e155
chore(deps): bump next, moment and brace-expansion in the dashboard 2026-10-05 18:52:51 -07:00
Yuneng Jiang
eb91e815c0
chore(deps): bump werkzeug to 3.1.9 2026-10-05 18:51:41 -07:00
Yuneng Jiang
9bfde413b3
chore(deps): bump multidict to 6.9.1 2026-10-05 18:51:40 -07:00
Yuneng Jiang
1f388e5221
chore(deps): bump mako to 1.4.2 2026-10-05 18:51:40 -07:00
Yuneng Jiang
0cc25f2f18
chore(deps): bump langgraph-sdk to 0.4.4 2026-10-05 18:51:39 -07:00
Yuneng Jiang
6db4026e27
chore(deps): bump oauthlib to 4.0.0 2026-10-05 18:51:39 -07:00
Yuneng Jiang
41017f478d
chore(deps): bump fsspec to 2026.6.0 2026-10-05 18:51:38 -07:00
yuneng-jiang
ecae261b10
Merge pull request #44437 from BerriAI/litellm_chore_bba82d
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
test(e2e): backport Together structured-output and text-completion fixes to stable/1.103.x
2026-10-03 14:11:07 -07:00
yuneng
ff6578183b test(e2e): align completion, SAIL, and spend-log fixtures with supported contracts (#43902)
Partial backport to stable/1.103.x: only the text completion endpoint test moves off the retired gpt-3.5-turbo-instruct to openai/gpt-5.4-nano with reasoning off. This line predates the OpenAI SDK rewrite of the test, so reasoning_effort goes through EndpointsClient.text_completions instead of extra_body. The SAIL, spend-log and coverage registry repairs are not needed for this line's e2e suite

(cherry picked from commit e61733b170)
2026-10-03 21:07:17 +00:00
yuneng
3896240d3b test(ci): repair stale tests and flaky CI infrastructure (#43983)
Partial backport to stable/1.103.x: only the Together AI structured-output e2e case moves to the hybrid reasoning backend with reasoning off, since the reasoning-only model it picked returned no content. The CI infrastructure and other test repairs are not needed for this line's e2e suite

(cherry picked from commit 6ca90b927c)
2026-10-03 21:07:17 +00:00
yuneng-jiang
8a7280ee1b
Merge pull request #44404 from BerriAI/litellm_chore_35b6b0
chore(release): backport #44341, #44346 to stable/1.103.x
2026-10-03 12:00:31 -07:00
devin-ai-integration[bot]
94d97b26f0
fix(responses): merge bridged tool calls into the same choice as the text (#44346)
* revert(responses): revert "fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged tool calls into one choice" (#44295)

This reverts commit ca1994e403.

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

* fix(responses): merge bridged tool calls into the same choice as the text

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

---------

Co-authored-by: kerry <kerry@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
(cherry picked from commit 5724117116)
2026-10-03 11:20:16 -07:00
devin-ai-integration[bot]
dabf756927
fix(proxy): stamp the client alias on a copy of each streamed chunk so pricing sees the deployment model (#44341)
* fix(proxy): stamp the client alias on a copy of each streamed chunk so pricing sees the deployment model

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

* test(spend): streamed alias matching a capability rule bills the deployment price

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

* test(spend): assert every streamed chunk carries the client alias

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

* fix(logging): log the client alias on the priced streamed response, the same as non-streamed

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

---------

Co-authored-by: kerry <kerry@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
(cherry picked from commit 7b432d78d2)
2026-10-03 11:20:16 -07:00
yuneng-jiang
b74a2496c1
Merge pull request #44352 from BerriAI/litellm_chore_db5a8b
chore(deps): bump pyjwt, pypdf, tornado, urllib3 and gitpython for stable/1.103.x
2026-10-03 00:17:34 -07:00
yuneng
008bacc53f chore(deps): bump pyjwt, pypdf, tornado, urllib3 and gitpython in uv.lock for advisories
Lock-only bumps inside the existing pyproject ranges, each already at or below the version
main resolves: pyjwt 2.13.0 -> 2.15.0, pypdf 6.16.2 -> 6.19.0, tornado 6.5.8 -> 6.5.9,
urllib3 2.7.0 -> 2.8.0, gitpython 3.1.61 -> 3.1.62
2026-10-03 07:12:16 +00:00
yuneng-jiang
121ce723f5
Merge pull request #44309 from BerriAI/litellm_chore_ff7ad3
Some checks are pending
LiteLLM Rust / rust-lint (push) Waiting to run
LiteLLM Rust / rust-test (push) Waiting to run
LiteLLM Rust / rust-wheel (push) Waiting to run
chore(release): backport #42643 to stable/1.103.x
2026-10-02 19:03:44 -07:00
yuneng-jiang
0893321abf
chore(docker): bump wolfi-base digest to pick up glibc 2.44-r6 (#42643)
The pinned base's /etc/apk/world locks glibc-2.44=2.44-r1, so the apk upgrade in the runtime stage cannot move it. The new digest ships 2.44-r6 on amd64 and arm64

(cherry picked from commit bc911abdbb)
2026-10-02 18:58:46 -07:00
yuneng-jiang
79691289df
Merge pull request #44286 from BerriAI/litellm_fix_cbfd1b
fix(proxy-extras): stop the migration sanity check from building the hand-built SpendLogs indexes and cut 1.103.3
2026-10-02 17:15:54 -07:00
Yuneng Jiang
21995f87a4
chore(release): bump litellm 1.103.2 -> 1.103.3 for stable/1.103.x 2026-10-02 16:58:30 -07:00
Yuneng Jiang
4d245e1d9c
fix(proxy-extras): keep the post-migration sanity check from building the hand-built SpendLogs indexes
schema.prisma still declares the LiteLLM_SpendLogs (api_key, startTime) and (litellm_call_id) indexes while their migrations are now SELECT 1, so the v1 resolver's drift script recreated both with a blocking CREATE INDEX at boot. The drift script now drops those two statements before it is applied, matching filter_request_log_index_diff on main. The key metadata recovery fixture builds its index directly and the schema sync test exempts the two indexes.
2026-10-02 16:58:30 -07:00
yuneng-jiang
3e32c0cd8e
Merge pull request #44225 from BerriAI/litellm_stable1103_extras_post1
chore(release): bump litellm-proxy-extras 0.4.100 -> 0.4.100.post1 for stable/1.103.x
2026-10-02 12:32:35 -07:00
yuneng
00b77ec8b5 chore(release): bump litellm-proxy-extras 0.4.100 -> 0.4.100.post1 for stable/1.103.x 2026-10-02 19:21:25 +00:00
yuneng-jiang
b0c4d5b6d4
Merge pull request #44205 from BerriAI/litellm_stable_1_103_x_enforce_migration_check_noop_index_migrations
fix(proxy): enforce the migration check by default and stop building SpendLogs indexes in migrations (stable/1.103.x)
2026-10-02 12:14:27 -07:00
yassin
6e65828d7f fix(proxy): enforce the migration check by default and stop building SpendLogs indexes in migrations
ENFORCE_PRISMA_MIGRATION_CHECK now defaults to true in both the proxy CLI and the standalone migration entrypoint, with ENFORCE_PRISMA_MIGRATION_CHECK=false or --no-enforce_prisma_migration_check as the opt-out. The two LiteLLM_SpendLogs index migrations become SELECT 1 so operators build those indexes online by hand.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-02 17:20:02 +00:00
yuneng-jiang
f69b2103df
Merge pull request #43984 from BerriAI/litellm_backport_lit9020_stable_1_103_x
fix(proxy): backport #43962 to stable/1.103.x
2026-09-30 22:40:24 -07:00
yuneng-jiang
2869a6f482
fix(proxy): restore pre-config-wins handling of pass-through endpoints (#43962)
* fix(proxy): restore pre-config-wins handling of pass-through endpoints

Config-wins (#41779) made general_settings.pass_through_endpoints a config-owned key. The DB reader then got the config list back as if it were DB rows, re-registered each entry without forward_headers on every DB sync, and the stripped copy won the route lookup, so a config pass-through with forward_headers: true stopped forwarding Authorization. UI create, update and delete of pass-throughs were also rejected while the config declared any.

This puts pass-throughs back on their pre-#41779 path: the settings store no longer lets the config own the key, the config list is captured env-resolved at load_config, each DB sync merges DB entries with config entries on paths the DB does not declare, and /config/field/info reads the stored rows only. A UI pass-through write re-applies that merge immediately so the config entries stay served until the next sync.

* fix(proxy): keep config pass-throughs in every reload of the merged list

get_config now returns DB pass-throughs plus config ones on other paths,
each DB sync republishes that merged list, and /config/field/info reads
pass_through_endpoints from the DB row so a UI write never drops stored
entries when models are not stored in the DB

* fix(proxy): keep serving pass-throughs while the config file reloads

load_yaml cleared the runtime pass-through list, so auth: false routes
answered 401 while get_config awaited the database

* fix(proxy): read stored pass-throughs from the writer before a UI write

A lagging read replica could return an older list, and the UI create and
edit flows write the whole field back

* fix(proxy): apply config file pass-through auth changes on reload

The kept runtime list was merged as if it were DB entries, so an edited
config entry on the same path was dropped. Merge the stored DB row with
the fresh config instead, and give the field-info test mock a writer

* fix(proxy): keep pass-throughs served while a DB sync reads the database

get_config resets the stored DB rows before reading them again, which
cleared the served pass-through list and made auth: false routes answer
401 for the length of the read

* refactor(proxy): move the settings store reload out of the loop

basedpyright rejects a Final variable assigned inside a loop

(cherry picked from commit 2eb2bf130b)
2026-09-30 22:23:33 -07:00
Mateo Wang
afbda352f1
Merge pull request #43662 from BerriAI/litellm_backport_safeguards_stable_1_103_x
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
fix(anthropic): backport #42152 and #42288 to stable/1.103.x
2026-09-30 16:40:30 -07:00
Mateo Wang
f14625652a
Merge pull request #43897 from BerriAI/litellm_backport_usage_attribution_stable_1_103_x
fix(proxy): backport #40541, #43642, and #43656 to stable/1.103.x for v1.103.2
2026-09-30 16:30:56 -07:00
mateo-berri
fe872527f1 chore(release): bump litellm-enterprise 0.1.69 -> 0.1.69.post1 for stable/1.103.x 2026-09-30 15:02:08 -07:00
mateo-berri
1bbc9ee1f9 test(integration): register the daily activity key metadata contracts on stable/1.103.x 2026-09-30 12:35:46 -07:00
mateo-berri
460d51fd85 bump: version 1.103.2 2026-09-30 12:03:00 -07:00
devin-ai-integration[bot]
97f670a942 fix(proxy): look up hashed key names with two spend log rows per key (#43656)
Backport of #43656 to stable/1.103.x.
Cherry-picked from 61a73c59b0 (main).
2026-09-30 12:02:36 -07:00
devin-ai-integration[bot]
00b8664bbd fix(proxy): recover session key owners from daily spend for usage attribution (#43642)
Backport of #43642 to stable/1.103.x.
Cherry-picked from f5a1c9f1f1 (main).
2026-09-30 11:56:46 -07:00
yuneng-jiang
74952e95ac test(integration): add the scratch_database harness helper
Hand-ported prerequisite for the #43642 backport to stable/1.103.x.
Taken from dd636373229b1ab3bfb2ed5b9b17b0ebd68b3ac7 (#43288, main), scratch_database only.
2026-09-30 11:56:46 -07:00
Mateo Wang
a746ac2462 fix(spend): attribute CLI session spend to the per-user cli-session alias instead of the hashed session token (#40541)
Backport of #40541 to stable/1.103.x.
Cherry-picked from 25fb7810c2 (main).
2026-09-30 11:43:02 -07:00
yuneng-jiang
a32e70a196
Merge pull request #43824 from BerriAI/litellm_sync_stable_1_103_x
chore(release): sync stable/1.103.x to v1.103.1
2026-09-30 11:00:07 -07:00
yuneng-jiang
580bde9a2d
Merge pull request #13 from BerriAI/litellm_session_token_1_103_x
refactor(auth): bind UI/CLI session tokens to their own AES-GCM context (stable/1.103.x)
2026-09-29 15:39:29 -07:00
Yuneng Jiang
d3bf006613
chore(lint): scope a TRY004 suppression to the bearer-token salt key check
This line's ruff strict budget has no headroom for the one TRY004 the
backport adds; the raise reports missing configuration, not a bad type.
2026-09-29 15:34:35 -07:00
Yuneng Jiang
a80eacacee
refactor(auth): bind UI/CLI session tokens to their own AES-GCM context
Backport of BerriAI/litellm-private#5 (12981f93d3) onto stable/1.103.x, applied as
the PR's net diff so main-only intermediate refactors stay out.
2026-09-29 15:17:24 -07:00
mateo-berri
3b00260b86 fix(azure_ai): add the dangerous-tool-use beta when Foundry gets safeguards
The proxy never forwards client anthropic-beta headers to azure_ai, so Foundry
400s on safeguards without the beta. Add it on the provider side when the request
carries safeguards, the way the Vertex path does.
2026-09-28 22:48:03 -07:00
mateo-berri
44115c5f2b fix(anthropic): forward the dangerous-tool-use beta to Azure AI Foundry
Foundry answers safeguards without the dangerous-tool-use-2026-09-03 beta
with a 400, and the azure_ai beta map dropped that beta, so Claude Code auto
mode requests through the gateway turned from 200 into 400 once safeguards
started passing through
2026-09-28 22:25:13 -07:00
mateo-berri
4982a1e111 chore(test): keep the backported Vertex safeguards test within the line's test-quality budget
Adds a test-quality-ok marker on the one patch.object the picked Vertex test needs, since the GCP token exchange runs before the faked HTTP boundary. Test-only, no runtime change.
2026-09-28 21:15:27 -07:00
Mateo Wang
594f0d1eaa fix(anthropic): forward Claude Code safeguards and dangerous-tool-use beta to Bedrock Invoke and Vertex on /v1/messages (#42288)
Backport of #42288 to stable/1.103.x.
Cherry-picked from fc82f6e8fa (main, first parent). Its Bedrock Mantle beta map and Mantle-only test are left out, since this line has no bedrock_mantle beta map and its Mantle messages path reuses the Bedrock Invoke one.
2026-09-28 20:07:52 -07:00