/usage: progress bar width desyncs from percentage value on initial render
Resolved 💬 1 comment Opened Apr 16, 2026 by akamash Closed May 24, 2026
<img width="823" height="490" alt="Image" src="https://github.com/user-attachments/assets/8e58f9fa-4b39-45eb-a952-69f0155fd8b3" />
Description
In the /usage dialog (Usage tab), progress bars render with an initial "placeholder" width that never reconciles with the actual percentage value once data arrives.
Steps to reproduce
- Run
/usage→ switch to the Usage tab - Observe progress bars for "Current session" and "Current week (Sonnet only)"
- Initial frame: bars render with correct proportions briefly
- ~1 second later: text labels update to actual values ("0% used", "1% used"), but the bar widths remain stuck at the initial ~60% fill
Expected
Bar width should match the reported percentage — at 0–1% used, the bar should appear empty or near-empty.
Actual
Bar width stays at ~60% fill while the label reads "0% used" / "1% used". The two visual elements are out of sync.
Environment
- Claude Code version: 2.1.111
- OS: macOS (Darwin 25.3.0)
- Terminal: iTerm2
- TERM=xterm-256color
- COLORTERM=truecolor
- Theme: default (dark)
Additional notes
- "Current week (all models)" renders without any bar at all (likely because no data is tracked yet — may be intentional)
- "Extra usage" row shows "100% used" as text but no bar rendered
- Reopening /usage does not reliably fix the desync
- Suspect a race condition in the Ink render: text state and bar-width state update independently, and the bar's re-render is skipped after data loads
Screenshot available on request.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗