Repository navigation
v2.23.0
https://www.npmjs.com/package/codex-multi-auth/v/2.23.0
npm i -g codex-multi-auth@2.23.0OAuth, health, quota, and device-auth requests now honor HTTP_PROXY/HTTPS_PROXY/NO_PROXY, status gets a compact default view with a codex-ma web live dashboard, resume --last picks the provider from the session Codex will actually reopen, and native WebSocket forwarding survives upstream drops with automatic HTTP recovery. (#742, #740)
Added
- Proxy-aware HTTP: every outbound call — OAuth, device auth, health checks, quota probes, runtime traffic — resolves
HTTP_PROXY/HTTPS_PROXY/NO_PROXY(lowercase wins, loopback destinations always bypass). Embedding hosts can pin the transport viasetProxyFetchImpl, and a non-platform globalfetchinstalled before module load is honored. (#742) - Compact
statusby default:codex-multi-auth statusandlistprint a compact table — subscription and API/ZDR accounts together, blocked accounts counted separately from ready, and quota windows labeled from their realwindowMinutesinstead of hardcoded5h/7d.--detailsrestores the previous diagnostic view;--jsonkeeps a stable shape includingruntime: nullon an empty pool. (#742) - Locale selection: output follows
--locale→CODEX_MULTI_AUTH_LOCALE→ savedlocalesetting → system detection (en/zh), covering detailed status, WebSocket disconnect lines, and the dashboard page and startup messages. A blankCODEX_MULTI_AUTH_LOCALEis treated as unset. (#742) - Local web dashboard:
codex-ma web(newcodex-maalias) serves a loopback-only, live-refreshing pool dashboard over SSE with--host/--port/--token/--interval/--no-open. Untokened loopback binds reject foreignHostheaders to defeat DNS rebinding, malformed requests return 400 instead of crashing the process, missing browser openers no longer kill the server, disconnected SSE clients are cleaned up eagerly, and backpressured clients are dropped rather than accumulating unbounded queues. (#742)
Fixed
resume/forkprovider selection: the wrapper resolves the source session's provider for both commands —resume --lastfilters candidates to the current working directory unless--all, a positional prompt after--lastno longer defeats the lookup, and only a bounded rollout header is read instead of the full transcript. Nativeopenaisessions keep their native provider. (#742)- WebSocket transport preservation and recovery: the native WebSocket transport survives upstream disconnects, rejected sessions are reclaimed safely at capacity, and upgrade rejections (capacity vs admission) share one diagnostics path. (#740)