Follows up the GPT-5.6 launch in 2.5.0: the diagnostic live/quota probe now leads with GPT-5.6, the Codex CLI and VS Code model pickers can surface the GPT-5.6 tiers, and parallel-agent fan-out spreads across accounts by default. Closes #626, #627, and #628.
Routing, rotation, storage, and the auth flow are unchanged. DEFAULT_MODEL (the general routing default and the gpt-5 alias target) stays on gpt-5.5, so this is not a breaking change; the one behavior change to note is that pidOffsetEnabled now defaults on (see Rotation below).
- The live/quota probe used by
check,report,forecast,best, andfixnow leads with GPT-5.6. A dedicatedDEFAULT_PROBE_MODEL(gpt-5.6-sol) drives the probe and theQUOTA_PROBE_MODEL_CHAIN(gpt-5.6-sol→gpt-5.5→gpt-5.4→ codex), socheckreportsModel probe: gpt-5.6-solandreport --jsonreportsmodel: gpt-5.6-solinstead ofgpt-5.5(#627). Accounts without GPT-5.6 entitlement fall through the chain to a model they can use. DEFAULT_PROBE_MODELis intentionally separate fromDEFAULT_MODEL: only the diagnostic probe moved to GPT-5.6, while the general routing default and thegpt-5alias remain ongpt-5.5.
- The probe body no longer hardcodes
reasoning.effort: "none". It now resolves the cheapest effort each probe model actually declares (lowfor the GPT-5.6 tiers and the codex models,nonefor the pre-5.6 general models), keeping the probe consistent with how a real request is routed throughgetReasoningConfig.
- GPT-5.6 now appears in the legacy config template.
config/codex-legacy.jsongained the GPT-5.6 tiers in the flattened per-effort format used by older Codex builds — Sol and Terra atlow…ultra, Luna atlow…max— matching the collapsedvariantsinconfig/codex-modern.json(#626). - Upgrades no longer miss newly shipped models. The config installer merged
provider.openaishallowly, so an existing config'smodelsmap shadowed the template wholesale and an upgraded config never gained models added after it was first written. The installer now merges themodelsmap at the model-id level: new template models (such as the GPT-5.6 tiers) appear on upgrade while the user's per-id customizations and top-level provider options are preserved.
- The
codex-multi-auth-codexwrapper understands GPT-5.6. The wrapper re-implements the model map because it runs before the TypeScript build, and it never gained the 2.5.0 GPT-5.6 work — so agpt-5.6-*request through the wrapper mis-bucketed its family, mis-coerced reasoning effort, and canonicalized togpt-5.5. It now mirrorslib/request/helpers/model-map.ts: themax/ultraeffort fallbacks, the Sol/Terra/Luna tiers and their supported-effort sets, effort aliases (none/minimalexcluded;ultraon Sol/Terra only), theultra→maxwire rewrite, thegpt-5.2prompt family, and a dedicated resolver so unrecognisedgpt-5.6-*ids resolve to a 5.6 tier instead of silently togpt-5.5.
pidOffsetEnablednow defaults on. It gives eachcodex-multi-auth-codexprocess a small deterministic account-selection bias so parallel agents spread across accounts instead of all selecting the same one and cascading into429s (#628). It is a no-op for single-account pools, and a manual pin plus health/quota scoring still take precedence over the small offset. SetpidOffsetEnabled: falseorCODEX_AUTH_PID_OFFSET_ENABLED=0to force every process to score accounts identically.
- Corrected two documented defaults that did not match the code:
retryAllAccountsRateLimited(false, nottrue) andretryAllAccountsMaxRetries(0, notInfinity). - Added a "High parallelism / swarms of agents" playbook to the troubleshooting and configuration references —
pidOffsetEnabled, theretryAllAccounts*trio,routingMutex(with its in-process-only caveat), and the "more accounts ⇒ less contention" structural note. - Clarified that a
Provider response headers timed out after 10000mserror is emitted by the host client's own provider header timeout (~10s), not by this plugin, whose request timeout (fetchTimeoutMs) defaults to60000and is a separate mechanism. - Added an upgrade-path troubleshooting entry for newest models missing from a model picker after an upgrade.
- Added
test/codex-model-resolution.test.ts, which pins the wrapper's GPT-5.6 behavior and asserts wrapper ↔lib/request/helpers/model-map.tsparity across a model × effort matrix, so the wrapper's duplicated model map cannot silently drift from the library again. - Added a regression test that the config installer adds newly shipped template models on upgrade while preserving user customizations.
- Updated the probe/default-model and
pidOffsetEnabled-default assertions across the manager, config, and rotation suites; the per-process offset is pinned off in the global test sandbox for deterministic account-selection assertions, with its own behavior covered directly inrotation.test.ts. - Hardened two tests that only failed on Windows checkouts (a CRLF over-capture in the workflow-parity test, and a too-tight timeout on the 513-request thread-goal eviction test). Neither was a product defect.
- Minor release published under the
latestdist-tag (npm i -g codex-multi-auth). - Verified end-to-end against a live ChatGPT (Pro) account:
check --livereportsModel probe: gpt-5.6-soland returns live quota headers; the real config installer adds the GPT-5.6 tiers to a pre-5.6 config while preserving user models. - The VS Code extension and Codex CLI build their model pickers from the installed Codex config's model list, so an existing install must re-run its config install (and restart the app/extension) to surface the GPT-5.6 tiers; code-level model resolution already handled
gpt-5.6-*requests before this release. .codex-plugin/plugin.jsonis aligned to the package version (2.6.0).