This file is an archival snapshot of historical changelog entries that predate the canonical 0.x release line.
It is preserved for historical context and is not the active changelog source.
- Added a plugin-owned true hashline engine for plain host runtime by overriding the
edittool. - Added
hashline_readto emit deterministicL<line>#<hash>references for edit targeting.
- Bridge/remap prompt guidance now prefers hashline workflow (
hashline_read->editwithlineRef). - README and configuration docs now include standard hashline usage for plain host runtime users.
- Defaulted request transform mode to
nativeso runtime tool schemas/payload shapes are preserved in current host runtime flows. - Scoped bridge-style Codex remapping to explicit
legacymode only, reducing tool-name drift and invalid alias rewrites. - Added config/env control for transform behavior:
requestTransformModeandCODEX_AUTH_REQUEST_TRANSFORM_MODE. - Updated bridge guidance to anchor on runtime tool manifests and avoid inventing/translating unavailable tool names.
- Validation: npm run typecheck
- Validation: npm run lint
- Validation: npm test
- Validation: npm run build
- Validation: host runtime smoke test (real auth state): successful file write/read tool flow (
filesystem_write_file,filesystem_read_text_file) - Validation: host runtime targeted
apply_patchtest: completed successfully (apply_patchtool part confirmed)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.2.2...v5.2.3
- #27
- Added stricter tool-call guardrails in host runtime bridge/remap prompts so the model only calls tools that actually exist in the active schema.
- Removed cross-environment path/tool assumptions that could trigger invalid tool calls.
- Hardened SSE response handling to convert terminal stream errors into structured JSON errors (
error,response.error,response.failed,response.incomplete, anddata:line variants). - Prevented transformed non-OK responses from being counted/treated as successful turns.
- Added regression tests covering terminal SSE error paths and parser edge cases.
- Validation: npm run typecheck
- Validation: npm run lint
- Validation: npm test
- Validation: npm run build
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.2.1...v5.2.2
- #25
- prompt fetch configurability: added
CODEX_PROMPT_SOURCE_URLoverride support and source-aware cache metadata so ETag conditional requests stay bound to the same source. - regression coverage + docs wording: updated prompt assertions/tests for the new
patch+editpolicy and refreshed architecture documentation text to match.
- tool mapping conflicts in codex bridge/remap prompts: removed contradictory guidance that treated
patchas forbidden and aligned instructions soapply_patchintent maps topatch(preferred) oreditfor targeted replacements. - host runtime codex prompt source brittleness: prompt fetch now retries across multiple upstream source URLs instead of relying on a single path that could return 404.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.2.0...v5.2.1
- gpt-5.3-codex-spark normalization + routing: added internal model mapping/family support for
gpt-5.3-codex-sparkand Spark reasoning variants. - generic unsupported-model fallback engine: entitlement rejections now support configurable per-model fallback chains via
fallbackOnUnsupportedCodexModelandunsupportedCodexFallbackChain.
- unsupported-model policy defaults: introduced
unsupportedCodexPolicy(strict/fallback) with strict mode as default; legacyfallbackOnUnsupportedCodexModelnow maps to policy behavior. - entitlement handling flow: on unsupported-model errors, plugin now tries remaining accounts/workspaces before model fallback, improving Spark entitlement discovery across multi-account setups.
- fast-session reasoning summary: fast mode now uses
reasoning.summary = "auto"(invalid/legacy summary values sanitize toauto). - legacy fallback compatibility:
fallbackToGpt52OnUnsupportedGpt53/CODEX_AUTH_FALLBACK_GPT53_TO_GPT52now act as a legacy edge toggle inside the generic fallback flow. - documentation refresh: README, configuration, getting-started, troubleshooting, and config template docs now describe strict/fallback controls, Spark entitlement gating, and optional manual Spark template additions.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.1.1...v5.2.0
- provider-prefixed model config resolution:
openai/<model>ids now correctly resolve to their base model config instead of falling back to global defaults. - codex variant option merging: variant suffixes like
-xhighnow applymodels.<base>.variants.<variant>options during request transformation.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.1.0...v5.1.1
- workspace candidate selection hardened: OAuth workspace auto-selection now prefers org defaults, id-token-selected workspace IDs, and non-personal org candidates before falling back to token-derived personal IDs.
- business workspace routing: explicit org/manual workspace bindings are now preserved at request time and no longer overwritten by token
chatgpt_account_idvalues. - gpt-5.3-codex on Business accounts: fixed a dual-workspace path where requests could be routed to personal/free workspace IDs and fail with unsupported-model errors.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.6...v5.1.0
- auth login interaction redesigned:
codex auth loginnow defaults to the Codex-style dashboard flow (actions/accounts/danger zone) instead of the legacy add/fresh-only prompt. - styled codex tool output default:
codex-list,codex-status,codex-health,codex-switch,codex-remove,codex-refresh,codex-export, andcodex-importnow default to the new Codex TUI formatting; scripts parsing legacy plain output should update or setcodexTuiV2: false.
- codex tui runtime controls: new config + env options for UI behavior:
codexTuiV2,codexTuiColorProfile,codexTuiGlyphMode,CODEX_TUI_V2,CODEX_TUI_COLOR_PROFILE, andCODEX_TUI_GLYPHS. - full account dashboard actions: interactive login now supports add/check/deep-check/verify-flagged/start-fresh, plus account-level actions (enable/disable, refresh, delete).
- dedicated flagged storage: introduced
openai-codex-flagged-accounts.jsonwith automatic migration from legacyopenai-codex-blocked-accounts.json. - ui architecture + coverage: added shared terminal UI runtime/theme/format modules and parity documentation (
TUI_PARITY_CHECKLIST.md) with focused tests.
- disabled account safety: disabled accounts are now excluded from active/current selection and rotation paths.
- enabled-flag migration:
enabledaccount state now survives v1->v3 storage migration and persists reliably across save/load cycles.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.14.2...v5.0.0
- gpt-5.3 fallback default: fallback from
gpt-5.3-codextogpt-5.2-codexon ChatGPT entitlement rejection is now enabled by default for all users. - strict-mode opt-out: strict behavior is now opt-out via
fallbackToGpt52OnUnsupportedGpt53: falseorCODEX_AUTH_FALLBACK_GPT53_TO_GPT52=0.
- unsupported-model handling: normalized the upstream 400 (
"not supported when using Codex with a ChatGPT account") to a clear entitlement-style error instead of generic bad-request handling.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.14.1...v4.14.2
- fast session mode: optional low-latency tuning (
fastSession) withhybrid/alwaysstrategies and configurable history window (fastSessionMaxInputItems).
- prompt caching: codex + host runtime bridge prompts now use stale-while-revalidate + in-memory caching; startup prewarms instruction caches to reduce first-turn latency.
- request parsing: fetch pipeline now normalizes
Requestinputs and supports non-string bodies (Uint8Array/ArrayBuffer/Blob) without failing request transformations.
- trivial-turn overhead: in fast session mode, trivial one-liners can omit tool definitions and compact instructions to reduce roundtrip time.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.14.0...v4.14.1
- gpt-5.3-codex model support: added end-to-end normalization and routing for
gpt-5.3-codexwithlow,medium,high, andxhighvariants. - new codex family key: account rotation/storage now tracks
gpt-5.3-codexindependently inactiveIndexByFamily.
- reasoning defaults:
gpt-5.3-codexnow defaults toxhigheffort (matching the current codex-family behavior), andnone/minimalare normalized to supported codex levels. - prompt fetch/cache mapping: prompt family detection now recognizes
gpt-5.3-codex; cache files are keyed togpt-5.3-codex-instructions.md. - config templates + docs refreshed: modern/legacy config examples and model reference docs now advertise
gpt-5.3-codexinstead ofgpt-5.2-codex.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.13.0...v4.14.0
- runtime metrics tool: added
codex-metricsto inspect live request/error/latency counters for the current plugin process. - 401 diagnostics payload: normalized 401 errors now include
diagnostics(for examplerequestId,cfRay,correlationId,threadId) to speed up debugging. - stream watchdog controls: new
fetchTimeoutMsandstreamStallTimeoutMsconfig options (and env overrides) for upstream timeout tuning.
- request correlation: each upstream fetch now sets a correlation id, reuses
CODEX_THREAD_ID/prompt_cache_keywhen available, and clears scope after each request. - plan-mode tool gating:
request_user_inputis automatically stripped from tool definitions when collaboration mode is Default (kept in Plan mode). - safety prompt hardening: bridge/remap prompts now explicitly block destructive git commands unless the user asks for them.
- gpt-5.2-codex default effort: default reasoning now prefers
xhighwhen no explicit effort/variant is provided. - gitignore hygiene: local planning/release scratch artifacts are now ignored to keep working trees clean.
- non-stream SSE hangs: non-streaming SSE parsing now aborts stalled reads instead of waiting indefinitely.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.5...v4.13.0
- legacy migration: when the new project-scoped path is empty, the plugin now auto-migrates legacy
<project>/.host runtime/openai-codex-accounts.jsondata on first load.
- per-project storage location: project-scoped account files now live under
~/.host runtime/projects/<project-key>/openai-codex-accounts.jsoninstead of writing into<project>/.host runtime/.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.4...v4.12.5
- Empty response retry - Automatically retries when the API returns empty/malformed responses. Configurable via
emptyResponseMaxRetries(default: 2) andemptyResponseRetryDelayMs(default: 1000ms) - PID offset for parallel agents - When multiple host runtime instances run in parallel, each process now gets a deterministic offset for account selection, reducing contention. Enable with
pidOffsetEnabled: true
- Environment variables:
CODEX_AUTH_EMPTY_RESPONSE_MAX_RETRIESCODEX_AUTH_EMPTY_RESPONSE_RETRY_DELAY_MSCODEX_AUTH_PID_OFFSET_ENABLED- Test coverage - 1516 tests across 49 files (up from 1498)
- npm publish status: not published on npm (tag/release only).
- PID offset formula - Fixed bug where all accounts received the same offset (now uses
account.index * 0.131 + pidBonusfor unique distribution) - Empty response detection - Hardened
isEmptyResponse()to correctly identify empty choice objects ([{}]) and whitespace-only content as empty - Test mocks - Fixed
index.test.tsmocks forcreateLoggerand new config getters (55 tests were failing)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.3...v4.12.4
- Test coverage - Up to 89% coverage (1498 tests)
- Code quality - Various improvements from audit
- Account persistence fix - Accounts were being saved to the wrong location when
perProjectAccountswas enabled (default). The issue was thatsetStoragePath()only ran in the loader, but authorize runs before that. So accounts got written to the global path, then the loader looked in the per-project path and found nothing. Both OAuth methods (browser and manual URL paste) now init storage path before saving. (#19)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.2...v4.12.3
- TUI crash on workspace prompt - Removed redundant workspace selection prompt (auto-selects default now). Added
isNonInteractiveMode()to detect TUI/Desktop environments. (#17) - Web UI validation error - Added validate function to manual OAuth flow for proper error messages instead of
[object Object].
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.1...v4.12.2
- Audit logging - Rotating file audit log with structured entries
- Auth rate limiting - Token bucket rate limiting (5 req/min/account)
- Proactive token refresh - Refreshes tokens 5 minutes before expiry
- Zod schemas - Runtime validation as single source of truth
- Tests: 580 → 631 (+51)
- All passing on Windows with
--pool=forks
- Business plan workspace fix - Fixed the "usage not included" errors some Business plan users were hitting. Turns out we were sending a stale stored accountId instead of pulling the fresh one from the token - problematic when you've got multiple workspaces. (#17, h/t @alanzchen for the detailed trace)
- Persistence errors actually visible now - Storage failures used to fail silently unless you had debug mode on. Now you get a proper error toast with actionable hints (antivirus exclusions on Windows, chmod suggestions on Unix). (#19)
- Atomic writes for account storage - Switched to temp file + rename to avoid corrupted state if a write gets interrupted mid-flight.
- Fixed a reader lock leak - The SSE response handler wasn't releasing its lock in the finally block. Small thing but could cause issues over time.
- Debug logging for rotation - Added some visibility into which account gets picked and why during rotation.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.12.0...v4.12.1
- tool rename: all
openai-accounts-*tools renamed to shortercodex-*prefix: openai-accounts→codex-listopenai-accounts-switch→codex-switchopenai-accounts-status→codex-statusopenai-accounts-health→codex-healthopenai-accounts-refresh→codex-refreshopenai-accounts-remove→codex-remove
- codex-export: export all accounts to a portable JSON file for backup or migration
- codex-import: import accounts from a JSON file, merges with existing accounts (skips duplicates)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.11.2...v4.12.0
- windows account persistence: fixed silent failure when saving accounts on Windows. errors are now logged at WARN level with storage path in message, and a toast notification appears if persistence fails.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.11.1...v4.11.2
- This plugin provides 6 built-in tools for managing your OpenAI accounts. Just ask the agent or type the tool name directly.
- | Tool | What It Does | Example Prompt |
- |------|--------------|----------------|
- |
openai-accounts| List all accounts | "list my accounts" | - |
openai-accounts-switch| Switch active account | "switch to account 2" | - |
openai-accounts-status| Show rate limits & health | "show account status" | - |
openai-accounts-health| Validate tokens (read-only) | "check account health" | - |
openai-accounts-refresh| Refresh & save tokens | "refresh my tokens" | - |
openai-accounts-remove| Remove an account | "remove account 3" |
- Zod validation error - Fixed crash when calling
openai-accounts-statuswith no accounts configured
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.11.0...v4.11.1
- Subdirectory detection - Per-project accounts now work from subdirectories. The plugin walks up the directory tree to find the project root (identified by
.git,package.json,pyproject.toml, etc.) - Live countdown timer - Rate limit waits now show a live countdown that updates every 5 seconds:
Waiting for rate limit reset (2m 35s remaining) - Auto-remove on auth failure - Accounts are automatically removed after 3 consecutive auth failures, with a notification explaining what happened. No more manual cleanup of dead accounts.
- openai-accounts-refresh tool - Manually refresh all OAuth tokens to verify they're still valid
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.10.0...v4.11.0
- per-project accounts: each project gets its own account storage now. no more conflicts when working across different repos with different chatgpt accounts. auto-detects project directories (looks for .git, package.json, etc.). falls back to global storage if you're not in a project folder.
- configurable toast duration: rate limit notifications stick around longer now (5s default). set
toastDurationMsin config if you want them longer/shorter. - account removal tool: new
openai-accounts-removetool to delete accounts by index. finally. - token masking in logs: all tokens, api keys, and bearer headers are now masked in debug logs. no more accidentally leaking creds.
- account limit bumped to 20: was 10, now 20. add more accounts if you need them.
- per-project accounts default on:
perProjectAccountsdefaults totruenow. disable withperProjectAccounts: falsein config if you want the old global behavior. - new options in
~/.host runtime/codex-multi-auth-config.json: - env vars:
CODEX_AUTH_PER_PROJECT_ACCOUNTS=1- enable per-project accountsCODEX_AUTH_TOAST_DURATION_MS=8000- set toast duration in ms
- token refresh race condition: added
tokenRotationMapto prevent concurrent refresh requests from stepping on each other. - rate limit retry jitter: 20% jitter on retry delays to prevent thundering herd.
- apply_patch infinite loop: removed apply_patch references from codex bridge that caused loops in some edge cases.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.7...v4.10.0
CODEX_AUTH_ACCOUNT_IDoverride to force a specific workspace id (non-interactive login).- troubleshooting guidance for "usage not included in your plan".
- business/team workspace selection: detect multiple workspace account IDs from oauth tokens and prompt for the correct one.
- prevent refresh/hydration from overwriting selected workspace ids (org/manual choices remain stable).
- persist workspace labels and sources for clearer account listings.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.5...v4.9.7
- tui auth gating: non-tty/ui auth attempts now return a clear instruction to run
codex auth loginin a terminal shell. - error-mapping simplification: consolidated entitlement/rate-limit mapping in fetch helpers for a single handling path.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v5.0.0...v4.9.6
- When your ChatGPT subscription didn't include Codex access, the plugin kept rotating through all accounts and retrying forever because it thought it was a temporary rate limit.
- You get an immediate, clear error: "This model is not included in your ChatGPT subscription."
- Account error handling - Fixes infinite retry loop when account doesn't have access to Codex models.
usage_not_includederrors now return 403 Forbidden instead of being treated as rate limits. Clear error message explaining the subscription issue. Prevents pointless account rotation for non-recoverable errors. (#16, thanks @rainmeter33-jpg!)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.4...v4.9.5
- TUI auth flow disabled - We now strictly enforce using
codex auth loginin the terminal for authentication. The UI-based 'Connect' flow is disabled with a clear message to prevent issues with non-interactive environments.
- Strict tool schema validation - Added filtering of required fields, flattening enums for compatibility with strict models like Claude/Gemini
- Manual login fixed - Parsing of OAuth URLs with fragments (
#code=) is fixed - Account switching - Manual selection is now strictly prioritized over rotation logic
- apply_patch enabled - The bridge prompt now allows
apply_patch
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.3...v4.9.4
- Strict schema validation - Ported robust tool cleaning logic from
antigravity-auth. Automatically normalizes tool definitions to prevent errors with strict models (like Claude or Gemini): - Filters out
requiredfields that are not defined inproperties - Flattens
anyOfschemas withconstvalues into standardenumarrays - Converts nullable array types into single types with a description note
- Injects placeholder properties for empty object parameters
- Enabled apply_patch - Updated the Codex bridge prompt to allow the
apply_patchtool
- Manual login fixed - The plugin now correctly parses OAuth redirect URLs that use fragments (e.g.,
#code=...). Previously, it only looked for query parameters, which caused manual copy-paste logins to fail with a redirection error. - Account switching logic - Changed account selection logic to strictly respect your manual choice. Before this fix, the hybrid rotation algorithm would sometimes override your selection based on account health or token scores.
- TUI integration - Implemented the missing event handler for the TUI. When you click an account in the interface, it now triggers the
openai.account.selectevent, saves the new active index to disk, and shows a confirmation toast. - Removed API key option - Removed the 'API Key' authentication method from the list because this plugin is designed for OAuth only.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.2...v4.9.3
- npm publish status: not published on npm (tag/release only).
- Auth prompts moved to TUI - Avoids readline input conflicts
- Error payload normalization - Improves rate-limit handling and rotation
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.1...v4.9.2
- When
codex auth logincalled the authorize function,inputswasundefined. The code had a conditional check that only entered the multi-account while loop ifinputsexisted with keys. This caused only single-account flow to run.
- Multi-account flow always runs - authorize() now always uses multi-account flow regardless of inputs parameter. (#12)
- Removed the conditional check so multi-account flow always runs, allowing users to add multiple ChatGPT accounts.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.9.0...v4.9.1
- breaking: package renamed from
host runtime-openai-codex-auth-multitocodex-multi-auth - package renamed to bypass host runtime's plugin blocking. host runtime skips any plugin with
host runtime-openai-codex-authin the name. the new namecodex-multi-authworks correctly. - updated all documentation, configs, and references to use new package name.
- added
multiAccountflag check in loader to coexist with host runtime's built-in auth. - fix node esm plugin load by importing tool from
@host runtime-ai/plugin/tooland ensuring runtime dependency is installed. - correct package metadata (repository links, update-check package name) and add troubleshooting guidance for plugin install/load.
- update your
~/.config/host runtime/host runtime.json: - npm package line: published under
host runtime-openai-codex-auth-multi(legacy package), notcodex-multi-auth.
- removed debug console.log statements from loader.
- plugin now properly detects when it should handle auth vs deferring to built-in.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.7.0...v4.9.0
- session recovery system: automatic recovery from common api errors that would previously crash sessions:
tool_result_missing: handles interrupted tool executions (esc during tool run)thinking_block_order: fixes corrupted thinking blocks in message historythinking_disabled_violation: strips thinking blocks when switching to non-thinking models- new recovery module (
lib/recovery/): types.ts- type definitions for stored messages, parts, and recoveryconstants.ts- storage paths (xdg-compliant) and type setsstorage.ts- filesystem operations for reading/writing host runtime session dataindex.ts- module re-exports- main recovery logic (
lib/recovery.ts): detectErrorType()- identifies recoverable error patterns from api responsesisRecoverableError()- quick check for recovery eligibilitycreateSessionRecoveryHook()- creates hook for session-level error recovery- toast notifications during recovery attempts
- new configuration options:
sessionRecovery(default:true) - enable/disable session recoveryautoResume(default:true) - auto-resume session after thinking block recovery- environment variables:
CODEX_AUTH_SESSION_RECOVERY,CODEX_AUTH_AUTO_RESUME - 26 new unit tests for recovery system
- feature release: full session recovery system ported from host runtime-antigravity-auth.
- account label format: changed from
Account N (email)toN. emailfor cleaner display - error response handling:
handleErrorResponse()now returnserrorBodyfor recovery detection - enhanced error logging with recoverable error detection in fetch flow
- npm package line: published under
host runtime-openai-codex-auth-multi(legacy package), notcodex-multi-auth.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.6.0...v4.7.0
- context overflow handler: gracefully handles "prompt too long" / context length exceeded errors:
- returns synthetic sse response with helpful instructions instead of raw 400 error
- suggests
/compact,/clear, or/undocommands to reduce context size - prevents host runtime session from getting locked on context overflow
- new module:
lib/context-overflow.ts - missing tool result injection: automatically handles cancelled tool calls (esc mid-execution):
- detects orphaned
function_callitems (calls without matching outputs) - injects synthetic output:
"Operation cancelled by user" - prevents "missing tool_result" api errors when user cancels mid-tool
- new function:
injectMissingToolOutputs()inlib/request/helpers/input-utils.ts - 34 new unit tests for context overflow and tool injection
- feature release: context overflow handling and missing tool result injection.
- npm package line: published under
host runtime-openai-codex-auth-multi(legacy package), notcodex-multi-auth.
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.5.0...v4.6.0
- strict tool validation: automatically cleans tool schemas for compatibility with strict models (claude, gemini)
- auto-update notifications: get notified when a new version is available
- 22 model presets: full variant system with reasoning levels (none/low/medium/high/xhigh)
- health scoring: tracks success/failure per account
- token bucket: prevents hitting rate limits
- always retries when all accounts are rate-limited (waits for reset)
- health-aware account rotation with automatic failover
- hybrid selection prefers healthy accounts with available tokens
- npm package line: published under
host runtime-openai-codex-auth-multi(legacy package), notcodex-multi-auth. - npm publish status: not published on npm (tag/release only).
- new retry options:
retryAllAccountsRateLimited(default:true)retryAllAccountsMaxWaitMs(default:0= unlimited)retryAllAccountsMaxRetries(default:Infinity)
Full Changelog: https://github.com/ndycode/codex-multi-auth/compare/v4.3.1...v4.5.0
- openai-accounts-status --json - Scriptable status output with email/ID labels
- Account labels - Now prefer email and show ID suffix when available; list/status outputs are columnized for readability
- Email normalization - Stored account emails are trimmed/lowercased when present
- @host runtime-ai plugin/sdk 1.1.34
- hono 4.11.5
- vitest 4.0.18
- @types/node 25.0.10
- @typescript-eslint 8.53.1
- @andremxmx for reporting the multi-account ID issue (#4)
- npm package line: published under
host runtime-openai-codex-auth-multi(legacy package), notcodex-multi-auth.
Full Changelog: https://github.com/ndycode/codex-multi-auth/commits/v4.3.1