fix(ui): stop pairing key spend with the team budget when a key has no budget - #37196
Merged
ryan-crabbe-berri merged 2 commits intoAug 17, 2026
Merged
Conversation
…o budget The key overview card and the Virtual Keys spend meter fell back to the parent team's max_budget as the denominator while the numerator stayed the key's own spend, so a $0.50 key on a $1,200 team read as "$0.50 of $1,200 (Team)" and drew a meter against a limit that governs the whole team's aggregate spend, not this key. Both surfaces now show Unlimited for a budgetless key and, when the parent team or organization does carry a budget, a hover hint listing those inherited caps so the reader knows what still gates the key
…itellm_key_budget_no_team_fallback # Conflicts: # ui/litellm-dashboard/src/components/templates/key_info_view.tsx
Contributor
Greptile SummaryThe PR corrects virtual-key budget presentation so key spend is no longer compared with inherited team budgets.
Confidence Score: 5/5The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking defects identified. The changed UI consistently separates a key's own budget from inherited team and organization gates, and the updated tests cover the principal display states on both affected surfaces.
|
| Filename | Overview |
|---|---|
| ui/litellm-dashboard/src/components/shared/InheritedBudgetHint.tsx | Introduces a focused helper and tooltip component that safely derives and formats team and organization budget gates. |
| ui/litellm-dashboard/src/components/shared/table_cells/spend_budget_cell.tsx | Stops metering key spend against inherited budgets and displays inherited limits only as contextual information. |
| ui/litellm-dashboard/src/components/VirtualKeysPage/keyTableColumns.tsx | Resolves the key's team and organization and supplies inherited gates only for budgetless keys. |
| ui/litellm-dashboard/src/components/templates/key_info_view.tsx | Displays budgetless keys as unlimited and adds inherited team or organization context without changing enforcement. |
| ui/litellm-dashboard/src/components/templates/key_info_view.budget_display.test.tsx | Covers owned, team-inherited, organization-inherited, and fully unlimited key-budget displays. |
Reviews (1): Last reviewed commit: "fix(ui): stop pairing key spend with the..." | Re-trigger Greptile
yuneng-berri
approved these changes
Aug 17, 2026
ryan-crabbe-berri
merged commit Aug 17, 2026
d0a815d
into
litellm_internal_staging
67 of 68 checks passed
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:
How it solves it:
InheritedBudgetHint+inheritedBudgetGateshelper, unit testedUser Flow
Before: an admin opening a key that has no budget of its own but sits on a team with one is told the key has that team's budget
$0.00 of $1,200 (Team)with a progress meter under it$0.0000 of $1,200.00 (Team: qa-budget-hint-team / 30d), as if this one key had a $1,200 cap and had used 0% of itAfter: the same key reads as unlimited, and hovering the hint explains what still gates it
$0.00 · Unlimitedwith a small question-mark icon and no meter$0.0000 of Unlimitedwith the same question-mark icon next to itof Unlimitedwith no icon; a key with its own budget showsof $25.00with no iconRelevant issues
Reverts the display fallback added in #30801
Linear ticket
Resolves LIT-5649
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
@greptileaito re-request a review after pushing changes)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
Setup, against the dev proxy on localhost:4000 with the master key:
Output:
Before (1dbed6e)
Virtual Keys table
qa-hintqa-hint-key-inheritsreads$0.00 of $1,200 (Team)with a meter under itKey overview card
qa-hint-key-inherits$0.0000 of $1,200.00 (Team: qa-budget-hint-team / 30d)After (6fc6f3c)
Virtual Keys table
qa-hintqa-hint-key-inheritsreads$0.00 · Unlimitedwith a question-mark icon and no meter; hovering the icon listsTeam qa-budget-hint-team: $1,200.00 / 30dandOrganization qa-budget-hint-org: $5,000.00qa-hint-key-free-teamreads$0.00 · Unlimitedwith no icon;qa-hint-key-own-budgetreads$0.00 of $25with a meter and no iconKey overview card
qa-hint-key-inherits$0.0000 of Unlimitedwith the icon; hovering shows the same team and organization linesqa-hint-key-free-teamshowsof Unlimitedwith no icon;qa-hint-key-own-budgetshowsof $25.00with no iconType
🐛 Bug Fix
Caveats (if any)
Final Attestation