fix(cate.usage): stop calling the widest bucket "all time" - #23
Merged
Conversation
Claude Code deletes transcripts past cleanupPeriodDays (30 by default), so ccusage only ever sees the retained window. The panel was summing that and labelling it "All time", which reads as lifetime spend when it is really the last 30 days. Rename Summary.allTime to Summary.retained, add UsageReport.coverageStart (earliest day with usage on disk), and label the tile "Since <date>". Hover explains the window and why older data is gone.
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.
The "All time" tile was never all time. Claude Code deletes its own transcripts past
cleanupPeriodDays(30 by default), so ccusage only sees whatever survived. On my machine the oldest transcript is exactly 30 days old, which is why the tile showed $4.7k all time next to $4.3k this month despite months of heavy use.Summary.allTime->Summary.retained, so the type name stops implying it tooUsageReport.coverageStart: earliest day with usage on disk, null when emptyTests: 35/35, typecheck and build clean.
Not fixed here: cost is still LiteLLM list price on token counts, not actual subscription spend, and the offline pricing fallback is off by ~99% on new models.