Repository navigation
v2.22.0
https://www.npmjs.com/package/codex-multi-auth/v/2.22.0
npm i -g codex-multi-auth@2.22.0Native Codex dictation now rides the managed OAuth pool, sequential scheduling honors the saved account order within priority tiers, and API/ZDR routes gain daily capability checks with WebSocket disconnect diagnostics. (#738, #737, #739)
Added
- Managed-OAuth transcription:
POST /transcriberoutes through the managed ChatGPT OAuth pool so native Codex dictation works behind the runtime rotation proxy. Multipart audio forwards byte-for-byte with its originalContent-Typeboundary andContent-Encoding; the 64 MiB request cap applies to the encoded upload. Failure semantics are conservative: a 429 backs off only the transcription lane (separate from inference rate-limit state), generic 403/5xx responses forward once without rotating accounts, and ambiguous transport failures are never replayed to a second account. Explicit auth-invalidation and workspace-disable signals remain account-wide, and usage-ledger rows recordoperation: "transcribe". There is intentionally no API-key/v1/audio/transcriptionsfallback. (#738) - Daily API/ZDR capability checks: the runtime verifies API-route access programs on a daily cadence and persists credential-scoped evidence, so
statusand paid probes reflect real capability instead of optimistic assumptions. Paid capability probes and scheduled checks run through the configured/custom fetch implementation rather than bare globalfetch. (#739) - WebSocket disconnect diagnostics:
codex-multi-auth status(text and--json) surfaces the last WebSocket disconnect reported by the running app router — including across restarts — so silent app drops are diagnosable. (#739)
Fixed
- Sequential scheduling order: with
schedulingStrategy=sequentialand any account priority other than the default1, routing follows the saved account-list order within the eligible tier instead of quota-reset ranking or active-account preference; pools with all-default priorities keep the healthy active cursor.statusnow reports the running router's scheduling strategy rather than only the settings file. (#737) - Credential reload and stale-recovery races: refresh commits landing while
loadFromDisk()is suspended are drained or redirected to the replacement manager instead of being clobbered or lost; rotated credentials carry token-bound identity (accountId,accountIdSource,email) without overwriting explicit manual/org bindings; auth-invalidation and workspace-disable markers carry only when they changed during the reload window; and derived (non-persisted) record IDs can no longer match a different account after token rotation. Same-workspace sibling logins with conflicting known emails are rejected onaccountId-only fallback. (#738) - API route store repair and probe durability: unconditional saves repair syntactically or schema-invalid route files while expected/CAS saves stay strict; unreadable route files (oversized, permission, I/O failures) are preserved instead of being rewritten empty; capability-probe state survives restarts and outages; and wiping probe state tolerates a missing directory. (#739)