Skip to content

Show all Codex reset-credit expiration times, not only the next one #1758

Description

@simon-ami

Problem

CodexBar currently shows only the next expiring manual Codex reset credit in the menu, e.g. Next expires in 1d.

That is useful, but incomplete when multiple reset credits are available. Users can see how many manual resets they have, but not when the other available resets expire.

Current behavior

When multiple Codex reset credits are available, the menu shows:

  • Limit Reset Credits
  • e.g. 2 manual resets available
  • e.g. Next expires in 1d

The other available reset credits' expiration times are not visible from the menu.

Expected behavior

CodexBar should make all available reset-credit expiration times visible while keeping the default menu compact.

Preferred UI:

  • Keep the current compact row unchanged by default.
  • Make the Limit Reset Credits row expandable/clickable, or add a small Show details affordance.
  • When expanded/clicked, show all available reset credits sorted by expiration time.

Example expanded content:

Manual reset expirations:
1. Expires in 1d — Jan 12, 14:30
2. Expires in 6d — Jan 17, 09:15
3. Expires in 13d — Jan 24, 18:00

Alternative UI:

  • If it better matches existing CodexBar menu conventions, show the same information via hover/help text.
  • However, click-to-expand may be preferable because hover-triggered popovers/tooltips can become noisy when moving the mouse through the menu.

The exact formatting can follow the existing reset-time display preference:

  • countdown style if reset times are configured as countdowns
  • absolute clock/date style if reset times are configured as absolute values
  • ideally include enough date context to distinguish resets expiring on different days

Why this matters

Manual reset credits can expire independently. Showing only the next expiration helps with the most urgent one, but it does not answer:

  • whether all resets expire close together,
  • whether later resets can be saved safely,
  • how much time remains before each individual reset expires.

This makes the reset-credit count less actionable, especially for users who have more than one available reset.

Possible implementation direction

The existing model already appears to have enough source data: the reset-credit snapshot contains the full list of credits, while the menu currently displays only the next expiring available credit.

A possible implementation path:

  1. Add a model field for a full reset-credit expiration summary, e.g. codexResetCreditsDetailItems, codexResetCreditsExpandedText, or similar.

  2. Build it from available, non-expired reset credits sorted by expiresAt.

  3. Keep the normal menu row compact by continuing to show only the next expiration inline.

  4. Show the full list only on click/expand, or as hover/help text if that fits the app better.

  5. Add/extend focused tests in CodexResetCreditsMenuCardTests for:

    • multiple available reset credits,
    • sorting by expiration time,
    • excluding redeemed/expired credits,
    • respecting the reset-time display style where practical.

Suggested labels

Use these as actual GitHub labels if available; otherwise leave this section in the issue body:

  • enhancement
  • area:ui-ux
  • provider:codex
  • priority:low or priority:medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-risk cleanup, docs, polish, ergonomics, or speculative feature.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions