Skip to content

v2.24.0

Latest

Choose a tag to compare

@ndycode ndycode released this 20 Oct 15:27
v2.24.0
cce85fb

https://www.npmjs.com/package/codex-multi-auth/v/2.24.0

npm i -g codex-multi-auth@2.24.0

Requests 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 resets and resets list --refresh list each available credit under its account as credit #N: expires <local date/time> (<title>). Non-expiring credits show no expiry, and missing or invalid expiry shows expires 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_exhausted no longer reports retry_after_ms: 0 when 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 redeem for 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:check accepts the npm 12 npm pack --json output shape.
  • The lockfile resolves playwright and playwright-core from the npm registry instead of a mirror; checksums are unchanged.