Skip to content

fix(web): Limits opens the usage limits popover directly - #29222

Open
flamboh wants to merge 57 commits into
pingdotgg:maria/redesign/2-composer-timelinefrom
flamboh:t3/redesign-fix-limits-popover
Open

flamboh wants to merge 57 commits into
pingdotgg:maria/redesign/2-composer-timelinefrom
flamboh:t3/redesign-fix-limits-popover

Conversation

@flamboh

@flamboh flamboh commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Note

🤖 Claude Opus 5.5 on behalf of Oliver

Fix for the redesign stack, targets layer 2 (#28840).

Problem

Clicking Limits on the low-usage notice didn't open anything next to it. It added the full usage limits panel as a second notice. The warning notice sorts first, so the panel went straight into the stack's "+1" overflow. You saw a "+1" pop up beside the button and had to open that to reach the limits, which then showed as a card nested inside a popover.

Fix

Limits is now a popover trigger. It opens the usage limits for the selected provider right above the button, using the shared Popover from components/ui. Nothing is added to the notice stack, so no "+1" appears.

  • The popover reuses the same account list as the /usage-limits panel (windows, reset credits, "Manage usage").
  • Enter or Space opens it. Focus moves to the popup, so one Escape closes it and focus returns to Limits.
  • /usage-limits still opens the full panel as before.

Before / after

Rendered from the real ComposerBannerStack, useChatBannerLane and useUsageLimitsPanel with fixture usage data (Claude at 82% of the session window, Codex with one reset credit), dark, 900px composer.

Before (layer 2) After
Before: low-usage notice at rest with Limits and Switch to Codex After: the same low-usage notice at rest
Before: after clicking Limits a +1 overflow appears beside the button and no panel opens After: clicking Limits opens the usage limits popover above the button, no +1
Before: opening the +1 shows the usage limits card nested inside the overflow popover

Made with Claude Opus 5.5 in Claude Code (T3 Code).

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Nov 2, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 33301e5

Macroscope's review found this PR approvable — The Limits button now opens usage details directly in a popover, reusing existing account displays and controls. The change is confined to UI presentation and does not alter product defaults or backend behavior.

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

@maria-rcks

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

Verified in a real dev environment

partial verification at 33301e5165e286a175b88cdcf02ae0f77570a3f0, not approval of the new popover.

ran vp i and the real background dev server separately on github/main (9bcf75335f) and the exact pr head. drove the web client with repository Playwright and /usr/bin/google-chrome. created a project pointing at a real git repository and a thread through the app, then completed real Codex gpt-6.1-sol turns on both revisions. no mocked usage data or provider responses.

on the pr, /usage-limits opens the shared account report, displays the provider's real error, dismisses, and reopens. dismissing the report preserves an unsent composer draft.

runtime observation from the client's live server configuration:

codex.status = ready
codex.usageLimits.windows = []
codex.usageLimits.unavailable.reason = probeFailed
codex.usageLimits.unavailable.message = Codex could not read usage (JSON-RPC -32600).
usageLimitSources = absent
real turn response = limits verification ready.
report dismissed = true
draft preserved = draft stays while closing limits

main diagnostic capture:

main: real codex response and unavailable usage report

pr diagnostic capture of the same project and provider, after a second real turn:

pr: shared account report shows the real provider usage error

Not verified

could not exercise the changed low-usage Limits button, direct popover positioning, absence of notice overflow, Enter/Space opening, or Escape/focus restoration. the real provider returns no usage windows, so the low-usage warning cannot appear. no alternative usage source is configured. these captures document the blocker, not a successful before/after of the fix.

github/main does not contain the redesign's low-usage warning; this pr targets maria/redesign/2-composer-timeline. the original warning/overflow bug therefore could not be reproduced on main.

subscription windows, reset credits, Manage usage, provider switching from the warning, native desktop/mobile clients, and remote/relay/tunnel connections remain unverified. existing head CI is green; no source changes or new checks were made. the changed popover still needs a real account reporting less than 25% remaining in a session window.

@maria-rcks
maria-rcks force-pushed the maria/redesign/2-composer-timeline branch 11 times, most recently from 605aebb to 5678a8e Compare November 3, 2026 01:38

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:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants