Skip to content

fix(web): Limits account labels stay readable with five or more accounts - #36137

Open
craigcossairt wants to merge 3 commits into
pingdotgg:mainfrom
craigcossairt:fix/limits-account-labels
Open

craigcossairt wants to merge 3 commits into
pingdotgg:mainfrom
craigcossairt:fix/limits-account-labels

Conversation

@craigcossairt

Copy link
Copy Markdown

Problem

With five accounts on one provider, Usage → Limits cuts off every account name in the bar ("Pe…", "Devel…", "Develo…"), so the segments look the same and each one has to be hovered to identify it. This happens even in a 2560px wide window.

Fixes #36134.

Change

Two parts of the same fix:

  • The bar picks its layout per account. PoolBar switched to the labeled layout with @2xl/pool, which looks only at the bar's width. Its container is now sized to one account's share of the bar, so the query asks whether a segment has 11rem for its label. When it does not, the bar falls back to the numbered rows it already uses on narrow screens, which show full names. Bars with up to three accounts keep the old 42rem breakpoint exactly.
  • Limits uses the modal's width. The Limits list was held to max-w-5xl inside the 80rem modal, so a five-account bar could never reach the width its labels need, however wide the window. WorkspacePageContainer gets a full width that Limits uses. The other Usage views stay on wide.

docs/user/usage.md said the numbered rows appear "on narrow screens"; it now says they appear when a bar is too narrow to label every account.

Scope

Bug fix. The bug is shown in #36134.

#32534 edits lines next to these in UsageLimitsPooled.tsx. Whichever lands second needs a small rebase, and I will do it if that is this one.

Verification

I hit this with five Claude accounts on a 2560×1032 window.

To check the fix I rendered the Limits view inside AppRouteModal in Chromium through the repo's browser test harness, on made-up accounts ("Personal", "Developer 1" to "Developer 4"), and captured it on main and on this branch:

  • 2560×1030, five accounts. Before: every name is cut off. After: each segment shows its full name, percentage and reset time. One exception remains: in the Session row, the segment that also shows a banked reset credit shortens "Personal" to "Perso…".
  • 1080×1680, five accounts. Before: every name is cut off. After: the bar is too narrow for five labels, so it shows numbered segments with a row per account below. Each of those cards is about 100px taller as a result.
  • 1600×1000, three accounts. Labeled segments before and after. The list is wider.
  • 1600×1000, four accounts and 700×1000, five accounts. Same layout before and after (labels and numbered rows respectively).
Before After
2560×1030, five accounts before after
1080×1680, five accounts before after
1600×1000, three accounts before after

vp run check:changed passed format, typecheck, the test beside the change, and the React compiler check. Lint passes on the changed files. Knip could not run in my checkout because the mobile and marketing dependencies are not installed.

No test added: this is a layout bug and the captures are the proof.

Not checked: the packaged desktop app. The screenshots come from the component harness, not a running server. The accounts in them are made up because my real Limits page shows account emails.

Claude Fable 5.2 in Claude Code, run from T3 Code.

🤖 Generated with Claude Code

The Limits bar chose its labeled layout from the bar's width alone, so a pool
of five accounts got segments too narrow for their names and every name was
cut off. The layout now asks whether one account's share of the bar has room
for a label, and falls back to the numbered rows when it does not. Limits also
uses the full width of the Usage modal, so a wide window labels more accounts.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-13T11:19:56.777309Z f305ca3 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added vouch:unvouched Author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Nov 13, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f305ca3

Macroscope's review found this PR approvable — Limits gains more horizontal space and switches to numbered account legends when individual labels would be cramped. The changes are presentation-only, leaving usage data and limit behavior unchanged.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

Run configuration

Commits

Reviewing files that changed from the base of the PR and between f305ca3 and 88984bb.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review

No actionable comments were generated in the recent review.

Walkthrough

The Usage Limits page now uses full width. Pooled bars adjust account label presentation and sizing based on their container width and account count.

Changes: Usage Limits layout

Layer / File(s) Summary
Limits page width
apps/web/src/components/WorkspacePageContainer.tsx, apps/web/src/components/usage/UsagePage.tsx
WorkspacePageContainer adds a full width option. The Limits page selects it; other metrics remain wide.
Pooled bar labels and sizing
apps/web/src/components/usage/UsageLimitsPooled.tsx, docs/user/usage.md
Pooled bar layout switches at the @min-[11rem]/pool threshold. PoolBar sizes account columns based on their count. The documentation describes when numbered account rows appear.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested reviewers: yash-singh1

Merge Risk: Minimal · previous review f305c

This change widens the Limits page and adjusts pooled-bar labels so account names stay readable. No merge-blocking risk was found, and other Usage views keep their previous width.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: Usage → Limits account labels stay readable when a provider has five or more accounts. It uses the conventional commit form with the fix(web) scope, matching the linke…
Description check Passed The description follows the template closely. It has Problem, Change, Scope, and Verification sections. The Problem section explains the truncated labels with five accounts and includes reproduction c…
Linked Issues check Passed [#36134] The reported causes are addressed. In apps/web/src/components/usage/UsageLimitsPooled.tsx, PoolBar sets each @container/pool to 100/share% of the bar, where share = max(columns, 42/11). The l…
Out of Scope Changes check Passed All changes connect to #36134. UsageLimitsPooled.tsx changes the labeled-layout query and the bar sizing that the issue identifies as causes. WorkspacePageContainer.tsx adds the "full" width option, w…
Full details: Title check

Explanation

The title names the main change: Usage → Limits account labels stay readable when a provider has five or more accounts. It uses the conventional commit form with the fix(web) scope, matching the linked bug (#36134) and the layout change in PoolBar and the full-width Limits view. At 72 characters it is slightly long but still clear.

Full details: Description check

Explanation

The description follows the template closely. It has Problem, Change, Scope, and Verification sections. The Problem section explains the truncated labels with five accounts and includes reproduction context (2560px window). The Change section explains both the per-account layout selection in PoolBar and the Limits full-width change, and states why they belong together. Scope links #36134 and explains the bug fix nature and the overlap with #32534. Verification gives specific browser-harness captures for several widths and account counts, lists the checks run, and states what was not checked. Before/after screenshots are embedded as the template requires for UI changes. The agent/model line is present. The Problem section does not state the expected behavior explicitly beyond the implied readable labels, and the Verification section notes the Session-row exception. The description is complete enough to pass.

Full details: Linked Issues check

Explanation

[#36134] The reported causes are addressed. In apps/web/src/components/usage/UsageLimitsPooled.tsx, PoolBar sets each @container/pool to 100/share% of the bar, where share = max(columns, 42/11). The labeled layout now switches on @min-[11rem]/pool instead of @2xl/pool, so a segment shows its label only when it has 11rem. With 5 accounts, labels appear at a bar width of about 55rem. With 3 accounts, the threshold stays at a 42rem bar. When labels do not fit, the existing numbered rows (LegendRow, index badges) show full names. The Limits list is no longer held to max-w-5xl: UsagePage uses the new WorkspacePageContainer width "full" for the limits metric. The PR description reports captures at 2560×1030 (five accounts, labels shown) and 1080×1680 (numbered rows). Remaining limitations: the Session segment that shows a banked reset credit still truncates "Personal" to "Perso…" in the author's capture. This is a residual truncation in one row, but the segments remain distinguishable and the issue's expected behavior is met. No automated test was added. The issue does not request one, and the PR describes the captures as the verification. The 4-account threshold moves from 42rem to 44rem, which the issue does not address explicitly. The packaged desktop app was not checked.

Full details: Out of Scope Changes check

Explanation

All changes connect to #36134. UsageLimitsPooled.tsx changes the labeled-layout query and the bar sizing that the issue identifies as causes. WorkspacePageContainer.tsx adds the "full" width option, which UsagePage.tsx uses only for the limits metric, and the issue names the max-w-5xl constraint as a cause. Other Usage views stay on "wide". docs/user/usage.md changes the numbered-row condition to match the new behavior. The PR description notes that #32534 touches adjacent lines in UsageLimitsPooled.tsx, which is a merge coordination concern and not out-of-scope work.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 7903b48 and f305ca3.

Files selected for processing: 4

  • apps/web/src/components/WorkspacePageContainer.tsx
  • apps/web/src/components/usage/UsageLimitsPooled.tsx
  • apps/web/src/components/usage/UsagePage.tsx
  • docs/user/usage.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.

@juliusmarminge juliusmarminge added the takeover:in-progress A takeover lead is working on this PR label Nov 13, 2026
juliusmarminge and others added 2 commits November 13, 2026 11:24
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The label clipping is fixed by the per-account breakpoint alone: a bar
too narrow to label every account falls back to the numbered rows, which
show full names. Widening the Limits page is a separate layout change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@juliusmarminge juliusmarminge added takeover:needs-julius Takeover done; route gate says Julius decides and removed takeover:in-progress A takeover lead is working on this PR labels Nov 13, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). takeover:needs-julius Takeover done; route gate says Julius decides vouch:unvouched Author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Usage Limits cuts off every account name when a provider has five accounts, even in a wide window

2 participants