v6.14.2
https://www.npmjs.com/package/oc-codex-multi-auth/v/6.14.2
npx oc-codex-multi-auth@6.14.2 installFixed
Pool-exhaustion diagnostics could contradict themselves (#236). The identity these counters are keyed on was partly derived from the refresh token — which is single-use, rotates on exchange, and whose replacement propagates to every sibling account that shared the old grant. An account fetched earlier in a request stopped matching its own recorded identity the moment any sibling refreshed, so the strict-pool message could report:
The model was unsupported on 2 of 2 attempted pooled account(s). 1 pooled account(s) were never attempted.
The key is now built from identity that does not rotate. Two legacy Business seats sharing one workspace id still count as two separate accounts, and a token rotation mid-request no longer disturbs the counts.
Accounts that were never attempted are counted against the accounts still present, rather than by subtracting attempts from a total. An account removed mid-request was genuinely attempted but is no longer configured, and the old arithmetic let that cancel out a live account that never got a turn.
Changed
Terminal routing diagnostics no longer degrade silently when account state is unreadable (#236). The strict-pool and exhaustion messages guarded their account lookup and fell back to an empty list. That fallback was not a safe degrade: with no accounts to match against, every configured pool entry looks unresolved, so a message meant to explain an exhausted pool would instead tell the operator their pool configuration matched nothing. The lookup is now unconditional.