* fix(popup): count down the pace run-out forecast
The popup formatted "Runs out in X" once, when a usage refresh arrived,
while the panel run-out text and the reset time beside it follow the
clock. With no periodic refresh or a long interval, the popup kept
promising hours of quota after the predicted run-out had passed.
Usage rows now keep their structured pace parts, and the popup pace line
advances the run-out duration from the row's own observation time, like
the panel countdown. Without a usable observation time the received
duration is kept.
Tests: PacePresentation.advancedParts cases, and a harness that evaluates
ProviderUsageRow's own pace label binding against main.qml's presentation
functions; it fails on main ("Runs out in 2 hours" 90 minutes later).
Documentation: usage guide countdown note, CHANGELOG Unreleased.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0118rYiu37HnKdYedpUff1cT
* test(visual): stub the popup pace text in the usage row fixture
ProviderUsageRow now reads its pace line through applet.usagePaceText;
the visual layout fixture's applet lacked it, so the row test found no
pace label.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0118rYiu37HnKdYedpUff1cT
---------
Co-authored-by: Claude <noreply@anthropic.com>8 files changedLine totals unavailable