fix: backport the management/v1 end-user filter and four dashboard fixes onto rc/1.95.0 - #34811
Merged
Merged
Conversation
style(ui): match MCP Servers tabs to the dashboard's line tab pattern (cherry picked from commit 63d6d8a)
…enter-b75b6d fix(ui): center vertical toolbar dividers (cherry picked from commit 9354849)
…n-c06977 fix(ui): restore the Add MCP Server dialog size and header spacing (cherry picked from commit 19348db)
…truncate-2b2a3f fix(ui): truncate long team names in the models table team dropdown (cherry picked from commit 2f2e1e7)
…tandards-b1cd57 refactor(management): move the logs end-user filter onto /management/v1 (cherry picked from commit 2b7e01b)
Contributor
Greptile SummaryAdds the management-v1 spend-log end-user facet and updates the dashboard to consume it, alongside focused fixes for MCP tabs and dialog sizing, toolbar separator alignment, and long team-label truncation
Confidence Score: 5/5The PR appears safe to merge; no concrete changed-code failure remains in the reviewed backend contract, authorization scope, dashboard integration, or layout fixes The new endpoint remains authenticated and scoped consistently with the spend-logs UI, bounds its database scan, exposes matching generated client types, and is consumed by focused dashboard code with regression coverage
|
| Filename | Overview |
|---|---|
| litellm/proxy/management_endpoints/management_v1/spend_logs.py | Adds the authenticated, role-scoped end-user facet with bounded SQL scanning, filtering, pagination, and problem-detail errors |
| litellm/proxy/management_endpoints/management_v1/common.py | Introduces shared management-v1 query validation, problem responses, and pagination-link construction |
| litellm/proxy/proxy_server.py | Registers the new router and limits the new validation-error contract to management-v1 paths |
| litellm/proxy/_types.py | Places the new endpoint in the same internal-user and admin-viewer access tiers as the logs UI |
| ui/litellm-dashboard/src/app/(dashboard)/hooks/spendLogs/useSpendLogEndUsers.ts | Replaces the legacy customer-alias hook with the generated management-v1 API contract and server-provided pagination links |
| ui/litellm-dashboard/src/components/view_logs/RequestLogsFilters.tsx | Updates the End User dropdown to consume the new facet response while preserving search and infinite scrolling |
| ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/mcp_servers.tsx | Switches the MCP navigation to the line-style tab variant and removes the full-width grey treatment |
| ui/litellm-dashboard/src/app/(dashboard)/mcp-servers/_components/mcp_discovery.tsx | Restores the wide dialog layout and reserves space around its close control |
| ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AllModelsTable.tsx | Centers the toolbar divider and truncates long team labels without losing their title text |
| ui/litellm-dashboard/src/components/shared/ToolbarSeparator.tsx | Adds a reusable fixed-height, vertically centered toolbar separator |
Reviews (1): Last reviewed commit: "Merge pull request #34691 from BerriAI/l..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Problem this solves:
rc/1.95.0/customer/aliaseswould otherwise ship in this rcHow it solves it:
rc/1.95.0Relevant issues
Backport of #34685, #34684, #34679, #34689 and #34691
Linear ticket
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
@greptileaito re-request a review after pushing changes)Tests come along with the picks; no test was written or altered for this branch
Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
The behavioral proof for each change lives on its own PR, captured against a live proxy; nothing about the behavior differs here because each pick applied with zero divergence. Every
git diff <pick>^ <pick>on this branch is byte-identical togit diff <merge>^1 <merge>onlitellm_internal_staging, so what merged into staging is exactly what lands on the rc line.What is worth re-running on this line, since it is the only pick with a runtime surface, is #34691. With a proxy on :4000 and the dashboard dev server on :3000, built from this branch:
content-type: application/problem+json):{"error": ...}body):For the four UI picks, the pages to eyeball on this branch are http://localhost:3000/?page=mcp-servers (tab strip, and the Add New MCP Server dialog) and http://localhost:3000/?page=models (toolbar dividers and the Team dropdown)
Type
🐛 Bug Fix
Changes
Five merges landed on
litellm_internal_stagingafterrc/1.95.0branched off at215f05588d, and all five belong in this rc. Each one was cherry-picked with-x -m 1in staging merge order, onto the rc tip, with no conflicts.The one that has to make this release is #34691.
/customer/aliasesshipped into staging two days before the branch point, so it is not in any release yet and its wire contract is still free to change. If the rc goes out with it, the path, the param names and the response envelope each need a permanent legacy adapter carryingDeprecationandSunsetheaders. Landing the move toGET /management/v1/spend_logs/end_usershere keeps that from becoming true.The other four are dashboard regressions with no backend surface: the MCP Servers tab strip rendering as a full-width grey bar (#34685), vertical toolbar dividers sitting flush with the top of their row rather than centered (#34684), the Add MCP Server dialog collapsing to 448px with its header action under the close button (#34679), and team ids overflowing the models table Team dropdown instead of truncating (#34689).
Nothing here is a rewrite of the originals. The
management_v1package does not exist on the rc line, so #34691 creates it whole rather than patching around an earlier version, and theschema.d.tshunk it carries touches exactly two paths, dropping/customer/aliasesand adding/management/v1/spend_logs/end_users, which is what regenerating on this line would produce. Thelinetab variant #34685 depends on is already present in the shadcn tabs primitive at the branch point, and after the picks nothing in the tree still referencesuseEndUserAliasesor/customer/aliases.Final Attestation