Repository navigation
https://www.npmjs.com/package/codex-multi-auth/v/2.24.0
npm i -g codex-multi-auth@2.24.0Requests use every regular account before falling back to emergency backups, last-resort reset recovery spends the soonest-expiring credit first, resets list --refresh shows each credit's expiry and title, and cached rate limits are rechecked after an hour, so a pinned account no longer stays blocked for days after its quota resets. (#744, #746, #747)
Added
- Reset credit expiry in
resets list:check resetsandresets list --refreshlist each available credit under its account ascredit #N: expires <local date/time> (<title>). Non-expiring credits showno expiry, and missing or invalid expiry showsexpires unknown. Only the expiry and title are cached; credit IDs and other backend fields are never written to disk. Explicit redemption reads skip the per-credit detail lookup. (#746)
Changed
- Regular capacity before backups: account quota exhaustion is tracked separately from transient retries, so a request no longer burns its retry budget while another eligible account could serve it. Emergency backup accounts stay reserved until ordinary capacity and permitted reset recovery are exhausted, and routing stays within the selected enabled workspace. (#744)
- Earliest-expiring reset credit first: last-resort recovery reads fresh credit details and redeems the credit with the earliest known expiry across depleted accounts, by explicit credit ID. Equal deadlines keep account priority order; missing or capped details fall back to backend-selected recovery. A pending explicit-credit attempt is stored in a format older versions refuse to read, so they cannot silently drop the selected credit ID. (#744)
- Hourly rate-limit revalidation: newly recorded account and confirmed-quota rate-limit deadlines are capped at one hour (shorter server delays are unchanged), so the next request rechecks the server without switching accounts or redeeming a reset credit. Older, longer persisted deadlines are bounded once on load and written back, and scheduler and quota-readiness snapshots expire after an hour while keeping the original reset times for display. (#747)
Fixed
- Pool-exhausted retry hint:
codex_runtime_rotation_pool_exhaustedno longer reportsretry_after_ms: 0when the only accounts that look ready are policy-blocked or reserved emergency backups. (#744) - Transcription retry hint: the transcription exhaustion hint no longer counts reserved backups as available capacity. (#744)
resets redeemfor deselected workspaces: a pending redemption result can be found again even after its workspace is no longer selected. (#744)- Concurrent saves of rate-limit state: when one side of a save leaves a rate-limit deadline unchanged, the other side's update now wins instead of the later deadline always winning. (#747)
Internal
npm run pack:checkaccepts the npm 12npm pack --jsonoutput shape.- The lockfile resolves
playwrightandplaywright-corefrom the npm registry instead of a mirror; checksums are unchanged.