Commit graph

52143 commits

Author SHA1 Message Date
mateo
b6c97230cc chore(ui): remove unused access-groups type interfaces
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:06:41 +00:00
mateo
bec1abd32e refactor(ui): drop unused rolesAllowedToSeeUsage, viewOnlyRoles and isViewOnlyRole exports
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:06:22 +00:00
mateo
cb4d4e9bfd test: drop test_deployed_proxy_keygen.py and its workflow entry
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:06:22 +00:00
mateo
b46bc21309 refactor(ui): remove dead useKeyList hook from key_list.tsx
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:06:13 +00:00
mateo
b19332319b refactor(ui): remove dead networking exports and orphaned Claude Code marketplace helpers
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:05:38 +00:00
yassin
f29be6e1ee fix(ui): save the MCP private ranges and client allowlist sequentially
The proxy stores both fields with a whole-row read-modify-write of
general_settings, so two concurrent writes from one save can drop one
of them. Also drops docstrings and suppressions the diff did not need

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:05:35 +00:00
yassin
376a1a71bb fix(proxy): make Transcribe polling constants fixed values
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:05:28 +00:00
mateo
349223fd8b test: remove fully commented-out test files that collect no tests
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:05:27 +00:00
mateo
221dc23ce2 refactor(ui): drop unused cost-tracking barrel re-exports and response types
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:05:06 +00:00
mateo
40782a8bd5 refactor(ui): remove unused createCredentialFromModel helper and CredentialValues interface
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:52 +00:00
mateo
8ab0d21c45 refactor(langfuse): remove unreachable langfuse v1 logging path
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:50 +00:00
mateo
b57104be33 chore(ui): remove dead compareUI ModelSelector and its test
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:26 +00:00
mateo
b9bfe74628 chore(ui): remove never-rendered GuardrailConfig mock component and its test
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:10 +00:00
mateo
d134fa18ee test(streaming): remove commented-out retired-provider streaming tests
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:10 +00:00
mateo
be74d2b01f chore(ui): remove orphaned ROLE_STYLES and RoleStyle from pretty messages view
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:04:02 +00:00
mateo
726c2bb6df chore(ui): remove unused NewBadge component and its test
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:53 +00:00
mateo
9cbad58a70 refactor(ui): remove unused HelpLink and HelpIcon components
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:49 +00:00
mateo
0ad9a9ba51 chore(proxy): delete deprecated unused litellm/proxy/_logging.py
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:31 +00:00
mateo
57e4336e40 chore(proxy): remove unreferenced performance_utils profiling module
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:19 +00:00
mateo
60e5ee4180 chore(tests): remove commented-out hf, petals and vertex ai completion blocks
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:06 +00:00
mateo
ea109cd5c6 chore(openai): drop commented-out legacy cost_per_token implementation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 20:03:05 +00:00
yassin
42429500be Merge remote-tracking branch 'origin/main' into litellm_team_member_temp_budget_increase 2026-09-17 19:59:44 +00:00
yassin
1f8f7529e8 Merge remote-tracking branch 'origin/litellm_team_member_temp_budget_increase' into litellm_team_member_temp_budget_increase
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	tests/test_litellm/proxy/auth/test_auth_checks.py
2026-09-17 19:59:16 +00:00
yassin
d5acbbde6f chore(ui): regenerate schema.d.ts for end_user_budget_id docstrings
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:57:44 +00:00
yassin
e932451312 refactor(proxy): move effective member budget onto the budget model and reject negative temp increases
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:56:35 +00:00
yassin
21cafc8780 refactor(mcp): validate initialize body and general_settings with pydantic in the client allowlist
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:53:33 +00:00
kerry
86c5627d66 Merge remote-tracking branch 'origin/main' into litellm-providers/price-sync 2026-09-17 19:51:01 +00:00
kerry-berri
decbb96382
Merge pull request #41635 from BerriAI/litellm_together_successor_test_drop_deprecation_pin
test(together_ai): stop pinning successor deprecation status
2026-09-17 12:50:50 -07:00
yassin
d9ddc4b901 test(proxy): assert temp budget increase stops at the exact expiry instant
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:50:50 +00:00
yassin
b9d0008d97 fix(proxy): keep temp budget fields out of organization metadata on create
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:50:50 +00:00
kerry-berri
c5b0d6218d
Merge pull request #41633 from BerriAI/litellm_non_string_model_spend_tracking
fix(proxy): reject non-string model with 400 and log its spend as unknown-model
2026-09-17 12:49:23 -07:00
yassin
43089640a2 docs(proxy): document end_user_budget_id on key generate and update endpoints
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:48:37 +00:00
mubashir1osmani
4e4008cea9 lint(cost): justify blind except in _lookup_model_info_or_none
get_model_info raises a bare Exception for unmapped models, so BLE001 cannot
be narrowed; mark it noqa with the reason to stay within the strict budget.
2026-09-17 15:43:46 -04:00
kerry
427d08470f test(together_ai): stop pinning successor deprecation status
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:40:00 +00:00
mubashir1osmani
d2af0577d5 test(files): assert key_model_access_denied error type instead of message text
main (15f2e25e8a) replaced the configurable model-access-denied message
with a fixed client message, so match on the stable error type.
2026-09-17 15:39:07 -04:00
yassin
e91cd877fb Merge remote-tracking branch 'origin/main' into litellm_team_member_temp_budget_increase 2026-09-17 19:37:25 +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
yuneng-jiang
dbc6c1cfaa
Merge pull request #37983 from etiennechabert/litellm_add_spendlogs_api_key_startTime_index
perf(spend_tracking): index LiteLLM_SpendLogs by (api_key, startTime)
2026-09-17 12:35:28 -07:00
yassin
99eeb813c4 Merge remote-tracking branch 'origin/main' into litellm_mcp_client_allowlist 2026-09-17 19:34:42 +00:00
yassin
5e7888f44d fix(ui): save MCP allowed clients independently of private IP ranges
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:34:42 +00:00
mubashir1osmani
9066a32363 Merge remote-tracking branch 'berri/main' into litellm_mistral_ocr_batches
# Conflicts:
#	litellm/batches/batch_utils.py
#	tests/test_litellm/llms/mistral/ocr/test_mistral_ocr_cost.py
2026-09-17 15:34:20 -04:00
yassin
177e6a0a97 test(anthropic-bridge): bound role reads instead of wall-clock time in the long system run test
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:34:16 +00: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
kerry
5e5e5086f0 Merge remote-tracking branch 'origin/main' into litellm-providers/price-sync 2026-09-17 19:29:18 +00:00
yassin
cc11653152 feat(proxy): per-key default budget for dynamically created customers
A service-account key can now carry end_user_budget_id in its metadata. When a request through that key names a customer that does not exist yet, the key's budget is applied to the new customer from the first request and wins over the proxy-wide max_end_user_budget_id. A customer with an explicitly assigned budget keeps it. The Admin UI exposes the setting on service-account key creation and key edit, and only proxy admins may set or clear it.

Resolves LIT-7996

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:28:53 +00:00
kerry-berri
0f5bc0ffa9
Merge pull request #41627 from BerriAI/litellm_fireworks_minimax_m3_vision_tests
test(fireworks_ai): stop pinning vision support on minimax-m3
2026-09-17 12:28:23 -07:00
Yuneng Jiang
9207c9a3d8
Merge remote-tracking branch 'origin/main' into litellm_add_spendlogs_api_key_startTime_index
# Conflicts:
#	litellm-proxy-extras/litellm_proxy_extras/schema.prisma
#	litellm/proxy/schema.prisma
#	schema.prisma
2026-09-17 12:20:26 -07:00
yujonglee
dc81cf57f7
Merge pull request #41550 from BerriAI/new-ocr-mapping2
refactor(ocr): mirror Python provider layout and preserve tests
2026-09-17 12:18:02 -07:00
yucheng
0f3556b1bf refactor(proxy): drop explanatory docstrings from the stream attribution helpers
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-17 19:17:49 +00:00