Skip to content

feat(cursor): show Auto and API pool usage separately#553

Open
AldikYO wants to merge 1 commit intosteipete:mainfrom
AldikYO:feature/auto-api-pool-usage
Open

feat(cursor): show Auto and API pool usage separately#553
AldikYO wants to merge 1 commit intosteipete:mainfrom
AldikYO:feature/auto-api-pool-usage

Conversation

@AldikYO
Copy link

@AldikYO AldikYO commented Mar 17, 2026

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.

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>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +314 to 316
let tertiary: RateWindow? = if let limit = resolvedOnDemandLimit, limit > 0 {
RateWindow(
usedPercent: (resolvedOnDemandUsed / limit) * 100,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant