feat(cursor): show Auto and API pool usage separately#553
feat(cursor): show Auto and API pool usage separately#553AldikYO wants to merge 1 commit intosteipete:mainfrom
Conversation
Cursor Pro plans split quota into two buckets: - Auto pool: base + bonus credits (autoPercentUsed from API) - API pool: base quota only for named models (apiPercentUsed) Previously planPercentUsed (7000/7000 = 100%) was used as primary, making it appear all usage was exhausted even when bonus credits remained. Now primary shows Auto pool and secondary shows API pool. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7b500b0421
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| let tertiary: RateWindow? = if let limit = resolvedOnDemandLimit, limit > 0 { | ||
| RateWindow( | ||
| usedPercent: (resolvedOnDemandUsed / limit) * 100, |
There was a problem hiding this comment.
Keep on-demand usage in a rendered Cursor window
This moves on-demand usage into tertiary, but Cursor’s UI only renders tertiary when supportsOpus is true (checked in MenuDescriptor.accountSection and MenuCardView.makeMetrics), while Cursor metadata keeps supportsOpus false. As a result, on-demand percent/limit is no longer shown as a usage bar (especially when apiPercentUsed is absent, such as legacy/non-token responses), which is a regression from the previous secondary-window behavior.
Useful? React with 👍 / 👎.
| public let openRouterUsage: OpenRouterUsageSnapshot? | ||
| public let cursorRequests: CursorRequestUsage? | ||
| /// Auto + API pool breakdown for token-based Cursor pro plans. | ||
| public let cursorPoolUsage: CursorPoolUsage? |
There was a problem hiding this comment.
Preserve cursor pool breakdown across snapshot relabeling
The new cursorPoolUsage field is added to UsageSnapshot, but the withIdentity copy path is not updated to pass it through, so any flow that rebuilds a snapshot with a new identity (for example account labeling/scoping) silently drops the Auto/API pool data. That makes the newly added Cursor pool breakdown disappear in multi-account/relabel scenarios even though the fetch parsed it correctly.
Useful? React with 👍 / 👎.
Cursor Pro plans split quota into two buckets:
Previously planPercentUsed (7000/7000 = 100%) was used as primary, making it appear all usage was exhausted even when bonus credits remained. Now primary shows Auto pool and secondary shows API pool.