Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 2 KB

File metadata and controls

29 lines (19 loc) · 2 KB

Install / Uninstall

Improvements

  • Added codex-multi-auth uninstall [--dry-run] [--json] [--clear-accounts] that reverses postinstall: unbinds Codex app rotation, removes OS launchers, strips the plugin entry from Codex.json, clears the node_modules cache, and conservatively deletes shared bun.lock only when no other Codex plugins remain.
  • Wired a preuninstall npm lifecycle script to the same cleanup path. (Note: see v2.1.7 — this hook does not actually fire on npm@7+.)

Bugfixes

  • Dry-run uninstall and scripts/preuninstall.js now compute the bun.lock decision from the actual Codex.json plugin list instead of always reporting "uncertain".
  • --clear-accounts no longer silently no-ops when no handler is wired; the CLI warns and exits non-zero.
  • Dry-run uninstall preview no longer requires scripts/codex-app-launcher.js on disk; default loader is deferred behind !dryRun.
  • removePluginFromList pre-filters falsy entries with list.filter(Boolean) to match scripts/install-codex-auth-utils.js.

Core

Bugfixes

  • hydrateRuntimeEmails no longer collapses accounts sharing accountId === undefined into the same Map entry; refreshed tokens land on the originating row.
  • restoreTopLevelModelProvider/restoreTopLevelResponseStorage now splice missing keys ahead of the first section header instead of appending and producing invalid TOML.
  • runFix, runHealthCheck, and forecast saveQuotaCache paths now downgrade transient Windows EBUSY/EPERM to a partial-success warning surfaced via quotaCacheSaveError.
  • withStorageLock now initializes releaseLock as a typed no-op so a synchronous Promise constructor throw cannot leave the storage mutex held.

Runtime Rotation Proxy

Bugfixes

  • App-bind no longer rewrites config.toml to a dead router's port; the predicate now requires router.state === "running" and a live PID.
  • Stream-failover read promise is now hoisted before the soft/hard timeout split so the chunk that ends a stall is no longer dropped.