Skip to content

claude banked resets - #33

Merged
DexterStorey merged 1 commit into
mainfrom
claude-resets
Oct 1, 2026
Merged

DexterStorey merged 1 commit into
mainfrom
claude-resets

Conversation

@DexterStorey

Copy link
Copy Markdown
Contributor

Claude now banks rate-limit resets the way codex does. Claude accounts get the same ↺N column, and r opens the same confirm card.

On the wire (captured live on 3 Max 20x accounts, contract read from Claude Code 2.1.286)

  • GET /api/oauth/usage?cedar_ember=1 adds a cedar_ember block with grants (resets_left, ends_at, label, usable_now) and next_grant_id. Spend and extra usage stay in the response, so seeing resets costs no extra requests.
  • Eligibility is gated on the User-Agent. With no UA the server says ineligible_reason: "surface", an old claude-cli/2.1.100 gets "cli_version", and the installed Claude Code's claude-cli/<version> (external, cli) is eligible. The daemon reads the version once from claude --version.
  • To redeem: POST /api/organizations/{profile.organization.uuid}/reset_rate_limits with {program: "cedar_ember", grant_id: next_grant_id, request_id}. The result values reset | already_used | not_limited | cooldown | ineligible | unavailable map onto the existing outcome codes, plus a new unavailable.
  • Each account currently holds one grant: "Claude Opus 5.5 launch: one usage-limit reset for Pro and Max". It expires 2026-10-22, clears 5h + 7d, and doesn't require being at the limit.

Shape

  • resetCredits moves onto both providers' usage snapshots. Header-sourced snapshots now carry it for Claude as well as codex.
  • The IPC methods codex/resetCredits and codex/consumeReset become account/resetCredits and account/consumeReset, which dispatch by provider. A dashboard left open on an older version already says to restart.

Verified

  • On the real daemon: all three accounts' snapshots show {applicable: 1, available: 1}, and the account/resetCredits IPC returns the grant with its expiry.
  • The live 80-column dashboard renders ↺1 on every Claude row without wrapping, and the footer shows r reset.
  • Typecheck, biome and 106 tests pass on Bun 1.2.20 and 1.4.2 (CI's version).
  • The claim POST has not been fired. Resets are scarce, so the first one is yours to spend.

Not surfaced: juniper_tide, a separate weekly-reset experiment that only appears at the wall. Every account reports not_at_wall, so I couldn't observe it.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

try this branch: bun add -g tokenmaxx@0.0.73-alpha.103

@DexterStorey
DexterStorey merged commit 30aea23 into main Oct 1, 2026
3 checks passed
@DexterStorey
DexterStorey deleted the claude-resets branch October 1, 2026 02:05
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