Mateo Wang
3424390101
Merge pull request #41448 from BerriAI/litellm_fix_passthrough_empty_query_params_drop_url_query
...
fix(passthrough): keep target URL query when client sends no query params
2026-09-17 18:02:48 -07:00
kerry-berri
f51f01fb54
Merge pull request #41443 from BerriAI/litellm_remove_brittle_price_pinning_tests
...
test: delete unit-test assertions that pin cost-map prices, limits and deprecation dates
2026-09-17 17:52:42 -07:00
ryan-crabbe-berri
85fe646776
Merge pull request #41694 from BerriAI/litellm_rename_model_sync_allowlists
...
fix(proxy): propagate db model renames to key, team, org, project and user model allowlists
2026-09-17 17:42:06 -07:00
kerry
8504c51f6c
Revert "test: keep prompt cache prediction logic tests and drop only their price pins"
...
This reverts commit 810df257d8 .
2026-09-18 00:40:38 +00:00
kerry
810df257d8
test: keep prompt cache prediction logic tests and drop only their price pins
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:39:34 +00:00
ryan-crabbe-berri
03ba5634a2
Merge pull request #40632 from BerriAI/litellm_fix_ui_disable_cache_control_injection_points
...
fix(ui): persist disabling cache control injection points on model update
2026-09-17 17:35:07 -07:00
Mateo Wang
cf42b607c3
Merge pull request #41615 from BerriAI/litellm_jev_complexity_classifier
...
feat(router): add TypeSafe Jev as a complexity router classifier
2026-09-17 17:31:08 -07:00
kerry
84d4d17bf8
Merge remote-tracking branch 'origin/main' into litellm_remove_brittle_price_pinning_tests
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py
2026-09-18 00:29:52 +00:00
kerry
c4620170ca
test: delete assertions that pin vendor cost map facts
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:28:49 +00:00
yucheng-berri
a9bea4f64d
Merge pull request #41571 from BerriAI/litellm_policy_attachment_priority
...
feat(policy_engine): explicit priority for policy attachment execution order
2026-09-17 17:27:55 -07:00
ryan
696587c4ab
fix(ui): persist disabling cache control injection points on model update
...
Turning Cache Control off on the model edit screen omitted the field from the
PATCH body, which the backend reads as leave unchanged, so the stored
cache_control_injection_points list survived the save. The dashboard now sends
an explicit null when a stored list is being disabled, and update_db_model
clears that field on null the same way it already clears the mirrored pricing
fields. Omitted keys keep the stored value
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:20:22 +00:00
yucheng-berri
e99902c4dd
Merge pull request #41569 from BerriAI/litellm_azure_ptu_spillover_cost
...
fix(cost): price Azure PTU spillover requests at standard token rates
2026-09-17 17:09:40 -07:00
ryan
1d50d1ad3b
fix(proxy): rewrite every model allowlist in one statement on rename
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 23:40:59 +00:00
mateo-berri
42f2978061
Merge remote-tracking branch 'origin/main' into HEAD
2026-09-17 16:38:54 -07:00
mateo-berri
1e7e5b695f
fix(router): reject a blank Jev api_key so it cannot pair with a caller-chosen api_base
2026-09-17 16:38:54 -07:00
Mateo Wang
deb9d8aedd
Merge pull request #41607 from BerriAI/litellm_typesafe_passthrough
...
LiteLLM Rust / rust-test (push) Waiting to run
Unit Tests: Documentation Validation / documentation (push) Waiting to run
Unit Tests: Proxy DB Operations / assert-shard-coverage (push) Waiting to run
Unit Tests: Proxy DB Operations / endpoints-and-responses (push) Blocked by required conditions
Unit Tests / caching-local (push) Waiting to run
Unit Tests / core-utils (push) Waiting to run
Unit Tests / enterprise-package (push) Waiting to run
Unit Tests / enterprise-routing (push) Waiting to run
Unit Tests / integrations (push) Waiting to run
Unit Tests: Proxy DB Operations / auth-checks (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / budgets (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / custom-logging (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / db-and-spend (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / guardrails-hooks (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / jwt-and-keys (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / key-generation (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / logging-misc (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / proxy-runtime (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / proxy-server-core (push) Blocked by required conditions
Unit Tests: Proxy DB Operations / proxy-utils (push) Blocked by required conditions
Unit Tests / Vertex AI (push) Waiting to run
Unit Tests / All Other Providers (push) Waiting to run
Unit Tests / misc (push) Waiting to run
Unit Tests / proxy-auth (push) Waiting to run
Unit Tests / proxy-endpoints (push) Waiting to run
Unit Tests / proxy-extras (push) Waiting to run
Unit Tests / proxy-infra (push) Waiting to run
Unit Tests / proxy-server (push) Waiting to run
Unit Tests / responses-caching-types (push) Waiting to run
GitHub Actions Security Analysis / zizmor (push) Waiting to run
feat(proxy): add TypeSafe AI Jev evaluate passthrough with registry-priced spend tracking
2026-09-17 16:37:33 -07:00
ryan-crabbe-berri
e5aa10a1ea
Merge pull request #41686 from BerriAI/litellm_member_budget_clone_reset_and_audit
...
fix(team): keep a forked member budget's reset window and audit bulk member budget writes
2026-09-17 16:32:31 -07:00
ryan
de0047c802
fix(proxy): skip allowlist rewrite when the model name is unchanged
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 23:24:26 +00:00
ryan
d3f5cde530
fix(proxy): propagate db model renames to key, team, org, project and user model allowlists
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 23:11:52 +00:00
Mateo Wang
57d41bda29
Merge pull request #41684 from BerriAI/litellm_wildcard_license_auto_router
...
fix(license): let a wildcard allowed_features license grant the auto_router feature
2026-09-17 16:11:40 -07:00
mateo-berri
7f581f6bc7
fix(router): keep the TypeSafe key off caller-chosen Jev endpoints
2026-09-17 16:09:31 -07:00
Mateo Wang
0da001901b
Merge pull request #41672 from BerriAI/litellm_autoroute_start_stop
...
feat(cli): rename lite autoroute up/down to start/stop, keeping the old names as deprecated aliases
2026-09-17 16:07:00 -07:00
ryan-crabbe-berri
29a959b3e8
Merge pull request #41632 from BerriAI/litellm_bulk_team_member_budget_update
...
feat(management_v1): bulk update team member budgets
2026-09-17 15:58:32 -07:00
mateo-berri
d3963e5d63
test(cli): pin the up alias port forwarding and the removed-settings stop message
2026-09-17 15:55:50 -07:00
Mateo Wang
289c52bcd6
Merge pull request #39512 from BerriAI/litellm_fix_image_edits_bracketed_alias
...
fix(images): stop forwarding the raw image[] and mask[] form keys
2026-09-17 15:48:32 -07:00
ryan-crabbe-berri
f04f0258f7
refactor(team): model the bulk budget audit payload as frozen types
2026-09-17 15:41:06 -07:00
mateo-berri
1feaa48705
fix(proxy): log TypeSafe calls that name no model as unknown
2026-09-17 15:37:00 -07:00
kerry
9eb6fbc572
test: read cost-map keys the implementation resolves and isolate the tariff test's model_cost copy
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 22:32:39 +00:00
mateo-berri
4371ddb620
feat(cli): keep lite autoroute up and down as hidden deprecated aliases
2026-09-17 15:25:12 -07:00
ryan-crabbe-berri
909a30d6a1
fix(team): keep a forked member budget's reset window and audit bulk member budget writes
...
Forking a shared budget row rebuilt budget_reset_at from the duration, so editing
an unrelated limit restarted the member's window while their spend carried over:
a tpm bump quietly handed them a fresh period. The fork now inherits the source
row's deadline, and only recomputes when the patch actually sets budget_duration.
The bulk member budget route now writes one audit entry per call, a team-scoped
'updated' row carrying every written member's limits before and after, matching
what /team/member_add already records for membership changes. It honors the
litellm-changed-by header like the other audited team routes.
2026-09-17 15:17:00 -07:00
mateo-berri
c2fbb11dca
fix(license): let a wildcard allowed_features license grant the auto_router feature
2026-09-17 15:08:09 -07:00
Yassin Kortam
356b8d4074
Merge pull request #41444 from zachbernstein-sdx/fix/scim-pagination-count-clamp
...
fix(scim): align pagination `count` validation with RFC 7644
2026-09-17 14:59:22 -07:00
mateo-berri
255190ca35
Merge remote-tracking branch 'origin/main' into litellm_fix_image_edits_bracketed_alias
2026-09-17 14:49:54 -07:00
kerry
ccff1fa95f
test: derive the remaining cost-map pins from the catalog entry
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 21:49:16 +00:00
mateo-berri
ec0e6dd98a
feat(cli): deprecate the litellm-proxy entrypoint in favour of lite
2026-09-17 14:05:31 -07:00
mateo-berri
a440d6d452
refactor(cli): rename lite autoroute up/down to start/stop
2026-09-17 14:05:20 -07:00
ryan-crabbe-berri
5396810bb6
fix(management_v1): authorize bulk member budget writes off the writer and reject unschedulable reset windows
...
The roster the authorization check reads came from the routed reader, so a
replica lagging behind a team-admin demotion could still grant that caller
member-budget writes. Pin that read to the writer, as the model reconcile does.
A budget_duration the reset job can never schedule from, a non-positive one
that leaves the row permanently due or an unparseable one that blew up mid
batch as a 500, is now a 422 naming the row it came from, with nothing written.
The check is the same one /team/member_update and /budget/new already run,
lifted out of validate_budget_duration so both surfaces share it.
2026-09-17 13:31:32 -07:00
ryan-crabbe-berri
fbbddb922e
Merge pull request #41488 from BerriAI/litellm_bound_enduser_reset_invalidation
...
fix(budgets): page end-user cache invalidation after a budget reset
2026-09-17 13:21:23 -07:00
mateo
dcbb77326d
chore(proxy): merge origin/main into TypeSafe passthrough
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:20:16 +00:00
kerry
27dd1a02aa
fix(proxy): reject non-string model with 400 and log its spend as unknown-model
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:37:14 +00:00
ryan-crabbe-berri
4f6dfb0480
fix(management_v1): report a zero team default as no cap
...
Enforcement treats max_budget 0 on the team default as "no cap" and only
honors 0 as an explicit disable on a member's own row, so reporting an
inheriting member as capped at 0 said the opposite of what happens on their
next request.
2026-09-17 12:35:46 -07:00
ryan-crabbe-berri
648373a260
feat(management_v1): bulk update team member budgets
...
Adds POST /management/v1/teams/{team_id}/members/bulk_update, a merge patch
over per-member limits (max_budget_in_team, tpm_limit, rpm_limit,
budget_duration, allowed_models) for up to 500 members in one transaction.
Editing a team's default member budget has never reached members who already
have a budget row, because /team/member_add clones the default per member.
This gives admins one call to roll a new cap out across the roster, and each
result carries max_budget_source so a caller can see whether a member is on
their own cap or on the team default.
Reads run on the writer inside the batch transaction, and any budget row more
than one membership points at is cloned before it is written, so raising one
member's cap never moves another's.
2026-09-17 12:30:46 -07:00
joshua-berri
1e7b03a6ed
Merge pull request #41619 from BerriAI/litellm_fix_mcp_guardrail_context_4889
...
fix(mcp): preserve request-selected guardrails during tool execution
2026-09-17 19:04:04 +00:00
mateo
b2ef8daee8
fix(proxy): stop duplicating query params on the TypeSafe passthrough
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 18:03:08 +00:00
Joshua Valluru
5b91195406
fix(mcp): retain selected guardrails for virtual REST calls
2026-09-17 10:40:33 -07:00
Joshua Valluru
743684bdbe
fix(mcp): preserve request-selected guardrails during tool execution
2026-09-17 09:57:08 -07:00
Joshua Valluru
664b1f16bb
style(tests): wrap MCP health regression setup
2026-09-17 09:19:05 -07:00
Joshua Valluru
e21db01d67
fix(mcp): scope health discovery for route-restricted keys
2026-09-17 09:17:55 -07:00
mateo
78eb92ca55
refactor(proxy): simplify TypeSafe passthrough pricing lookup and route
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 15:55:57 +00:00
mateo
2dc9697381
feat(proxy): add TypeSafe Jev passthrough spend tracking
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 15:53:19 +00:00