Repository navigation
feat: add an Extra Usage Limit widget - #756
Merged
sirmalloc merged 2 commits intoOct 29, 2026
Merged
Conversation
The Extra Usage widgets show the amount spent, what's left and the
percentage used, but never the monthly limit itself, so a line could
read "Spend Used: $123.45" with no way to show "of $500". Remaining
and Utilization only imply it.
Extra Usage Limit shows the monthly limit from the usage API, in the
reported currency and the cost number format, labeled like the other
Extra Usage widgets ("Overage Limit", or "Spend Limit" on accounts
without plan limits). When extra usage is on without a monthly limit
it shows "none", and when it's off "n/a", with the same hide options as
its siblings. It needs only the extra usage state and the limit, which
come from the fetch the other Extra Usage widgets already make.
axisrow
added a commit
to axisrow/ccstatusline
that referenced
this pull request
Oct 29, 2026
sirmalloc#755 live picker preview, sirmalloc#754 fast mode widget, sirmalloc#753 thinking-effort test stub, sirmalloc#752 transcript block fallback fixes, sirmalloc#751 editor keys no longer pause on global install lookup, sirmalloc#750 git cache TTL starts after the run, sirmalloc#749 npx cache skip, sirmalloc#747 Block Usage hides at 100% and swaps with Block Reset Timer) Conflict policy: upstream infra wins, fork features ported on top. Joins: sirmalloc#750 stamps the git cache after the run while keeping the fork's execGit hardening/env snapshot and daemon prefetch bookkeeping; sirmalloc#752's isApiErrorMessage guard lands in the fork's shared collectTimestampFromLine (sync + async twins), upstream's duplicate getActivityTimestamp dropped; sirmalloc#747 adds SESSION_AT_LIMIT alongside the fork's zero hide state (BlockResetTimer keeps zero + under-limit via isAtSessionLimit, SessionUsage is no-data/zero/at-limit); sirmalloc#755 replaces the fork's picker window + "Showing X-Y of N" note with upstream's renderWindowedList/getPickerMaxVisible and live preview (markers ↑/↓ N more cover the counts); sirmalloc#751's installationState useMemo replaces the fork's inline lookups, the fork's mainMenuIndex helper is kept. Co-Authored-By: Claude Code <[email protected]>
pcvelz
added a commit
to pcvelz/ccstatusline-usage
that referenced
this pull request
Oct 29, 2026
Upstream: Extra Usage Limit widget (sirmalloc#756), live widget preview while picking (sirmalloc#755), Fast Mode widget (sirmalloc#754), transcript block fallback fixes (sirmalloc#752), editor keys on a global install (sirmalloc#751), git cache TTL (sirmalloc#750), npx cached copy skip (sirmalloc#749), Block Usage hide at 100% (sirmalloc#747), Block Reset Timer hide until 100% (sirmalloc#697), fish-style branch abbreviation (sirmalloc#614), jj detached HEAD (sirmalloc#705), hooks save warning (sirmalloc#703), dev reload (sirmalloc#700), merge ends at a hidden widget (sirmalloc#698), Block Forecast and Block Limit Timer widgets (sirmalloc#699), contributor guide (sirmalloc#706), POSIX path case fix (sirmalloc#707), whitespace-distinct conflict filenames (sirmalloc#709), Quick Start reorder (sirmalloc#715), bunx launch guidance (sirmalloc#714), jj diff summary counts (sirmalloc#711), powerline manual separators (sirmalloc#713), keychain credential by account (sirmalloc#532), Keychain probe timeout (sirmalloc#760), usage cache scoped per CLAUDE_CONFIG_DIR (sirmalloc#266), test isolation (sirmalloc#717, sirmalloc#753), dev-dependency bumps (sirmalloc#745) Conflicts resolved per the standard-resolution table; fork deletions re-applied. Hand edits outside conflicts: - src/utils/global-command-resolution.ts: fork-rename (ccstatusline@ -> ccstatusline-usage@ in upstream's new bunx pattern) - src/utils/__tests__/global-package-manager.test.ts: fork-rename (package dir ccstatusline-usage in upstream's new tests) - src/utils/usage-fetch.ts: compat fix - cacheUsageData gained a fetchedAtMs arg (upstream sirmalloc#266); adapted the fork-only fetchFreshUsageData call site - src/utils/__tests__/usage-fetch.test.ts: compat fixes - cache/lock now hashed per CLAUDE_CONFIG_DIR (usageFilePath helper) in four fork tests; upstream fableUsage renamed to fork's weeklyFableUsage; seedUsageCache takes TokenHome - src/utils/__tests__/usage-prefetch.test.ts: compat fix - mockFetchUsageData renamed to upstream's mockFetchUsage in cleanly-merged tests - README.md: took upstream's Quick Start move (sirmalloc#715) and dropped the fork's old copy; fork-rename of its ccstatusline@ specifiers; links to fork-deleted docs (docs/USAGE.md, docs/WINDOWS.md) replaced with the fork's inline text - CONTRIBUTING.md: links to the fork-deleted docs/DEVELOPMENT.md pointed at the README Development section - docs/test-retirements.md: ledger entries for the 12 upstream test renames (sirmalloc#697, sirmalloc#698, sirmalloc#700, sirmalloc#705, sirmalloc#713, sirmalloc#760)
eric-engberg
added a commit
to eric-engberg/ccstatusline
that referenced
this pull request
Oct 30, 2026
Brings in upstream main through #41, which now holds #33 as upstream sirmalloc#756. Main adds Extra Usage Limit at the same places the #33 branch merged here did, so the widget manifest, the usage prefetch's widget list and requirements, and its prefetch test keep main's single entry. Daily Cost Rate's billed-spend test stubs getUsageFetchedAtMs, which #36 now reads in place of its own getUsageFetchedAt. # Conflicts: # docs/USAGE.md # src/ccstatusline.ts # src/types/RenderContext.ts
This was referenced Oct 31, 2026
Closed
Closed
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.
What
A new Extra Usage Limit widget shows the monthly extra usage limit itself:
Overage Limit: $50.00. It sits with the other Extra Usage widgets in the picker's Usage category.Why
The Extra Usage widgets show the amount spent, what's left and the percentage used, but never the limit. A line could read
Overage Used: $123.45with no way to add "of $500"; Remaining and Utilization only imply it. The limit is already in the usage API response (extra_usage.monthly_limit, in cents) and in the usage cache, so showing it costs nothing extra.How
Overage Limit:label like the other Extra Usage widgets (the label editor can change it), and the samedisabledandno-datahide options.n/a. Extra usage on with no monthly limit showsnone(once the API has reported extra usage as on, a missing limit means none is set; it's already treated as conclusive, Extra usage widgets show permanent [Timeout] when account has no monthly limit set #413). An unknown state with an error shows the usage error, like its siblings.$4,000.00, consistent with the Used ($106) and Remaining ($3,894) samples.Demo
Rendered from a fake usage cache (no login, no API call): an Enterprise account ($123.45 of a $500 limit), a Max account ($12.50 of $50), and a Max account with no monthly limit.
Powerline
Plain
Testing
nonewithout a limit,n/aand the hidden disabled state, errors and theno-datastate, the preview, and the hideable states. A prefetch test checks the widget triggers a fetch for exactly the extra usage state and the limit.bun test: 2378 pass, 0 fail.bun run lintpasses.mainonly by the new widget. The TUI opens and exits cleanly under both.Overage Used: $12.50 | Overage Limit: $50.00,Overage Limit: none(no monthly limit),n/awith extra usage off.main, after the Enterprise Spend wording it built on merged as fix(widgets): describe the Extra Usage widgets for Enterprise accounts too #670:bun test3258 pass, 0 fail;bun run lintclean. Built CLI under Bun 1.4.2 and Node 26.10.0: all runtimes agree in plain and Powerline modes, and the TUI opens and exits cleanly under both.