Stop showing "~100% left at reset" on untouched meters#1016
Open
robinebers wants to merge 1 commit into
Open
Conversation
Pace.evaluate treated zero usage as a confident "ahead" verdict with a 0-usage projection, so with Always Show Pacing on, every unstarted window (e.g. a fresh Cursor billing cycle) showed the tautological "~100% left at reset" plus an even-pace tick. Zero usage carries no burn rate to project, so treat it like the too-early-in-window case: no pace signal, and the row falls back to the plain level bar. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
TL;DR — An unstarted quota window (0 used) no longer shows the tautological "~100% left at reset" note and even-pace tick when Always Show Pacing is on; zero usage now means "no pace signal", so the row stays a plain calm bar.
What was happening
Pace.evaluatespecial-casedused <= 0as a confident.aheadverdict with a fabricated 0-usage projection. Zero usage carries no burn rate, so there was nothing real to project.What this changes
Pace.evaluatereturnsnil(no signal) when nothing has been spent, same as the existing "too early in the window" case. The meter falls back to the absolute-level state: calm blue bar, no projection copy, no tooltip, no tick.docs/dashboard.md,docs/settings.md, anddocs/providers/codex.mdto say an untouched metric stays plain until something is spent.Heads-up
isSessionWindowwould be a separate decision.WidgetData.meterStateconsumesPace.evaluate, and alerts can't regress (zero usage never produced an alertable state on either side of this change).Tests
testAlwaysShowPacingStaysSilentOnUntouchedMeter; updatedtestZeroUsageHasNoPaceSignalandtestZeroUsageFallsBackToPlainLevelBar.used: 0on a fresh cycle with Always Show Pacing enabled renders plain bars.Screenshots
The change is removal-only (the note and tick no longer render on untouched bars). Before, from the report:
🤖 Generated with Claude Code
Note
Low Risk
Small behavioral change in shared pacing logic with targeted tests and docs; no auth or data-path changes.
Overview
Fixes Always Show Pacing showing a meaningless "~100% left at reset" note and even-pace tick on meters with 0% used (e.g. a fresh Cursor billing cycle).
Pace.evaluatenow returnsnilwhenused <= 0instead of fabricating an.aheadverdict, soWidgetData.meterStatefalls back to a plain calm blue bar with no projection tooltip or tick until something has actually been spent. Tests and dashboard/settings/Codex docs are updated to match.Reviewed by Cursor Bugbot for commit 2fe8b79. Bugbot is set up for automated code reviews on this repo. Configure here.