Skip to content

Commit e1a8576

Browse files
ndycodeclaude
andcommitted
chore(release): 6.4.0
Manual version bump (Actions runner stalled, release-please cannot run). Bumps package.json, package-lock.json, .release-please-manifest.json and .codex-plugin/plugin.json to 6.4.0 and cuts the 6.4.0 CHANGELOG section (rotationStrategy + codex-warm + local-token-depletion rotation fix). Also corrects the codex-warm CHANGELOG entry to describe the shipped POST /codex/responses warm request (not the earlier GET /wham/usage draft). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 38480e9 commit e1a8576

5 files changed

Lines changed: 9 additions & 6 deletions

File tree

.codex-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "oc-codex-multi-auth",
3-
"version": "6.3.4",
3+
"version": "6.4.0",
44
"description": "Install and operate oc-codex-multi-auth for OpenCode with ChatGPT Plus/Pro OAuth, Codex/GPT-5 routing, multi-account rotation, account switching, health checks, diagnostics, quota status, and recovery tools.",
55
"skills": "./skills/",
66
"interface": {

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "6.3.4"
2+
".": "6.4.0"
33
}

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [6.4.0] - 2026-06-30
11+
1012
### Added
1113
- `rotationStrategy` config (env `CODEX_AUTH_ROTATION_STRATEGY`) selects the account load-balancing algorithm: `hybrid` (default, unchanged — stick to the current account while healthy, else score-select the next), `sticky` (drain-first — stay on one account until it is rate-limited/cooling down, then move to the lowest-indexed available account so load concentrates and the other accounts keep their quota windows in reserve), or `round-robin` (advance through accounts in order). Sticky directly addresses the "all accounts share an initiation time and hit weekly-quota cooldown together" problem under round-robin. (#183)
12-
- `codex-warm` tool primes every enabled account's usage window by sending one lightweight authenticated request (the same `/wham/usage` call the usage panel uses) to each, so the rolling ~5h quota windows start at session start instead of only when rotation eventually lands on each account. Disabled accounts are skipped; per-account failures are reported without aborting the batch. Complements `codex-switch index=N`, which already switches the active account on demand. (#182)
14+
- `codex-warm` tool primes every enabled account's usage window by sending one minimal billable request (`POST /codex/responses`, the same shape the live request path uses for its quota probe) to each, so the rolling ~5h quota windows start at session start instead of only when rotation eventually lands on each account. A read-only `GET /wham/usage` only reports server-side windows and does not open one, so warming must send a real inference request; the ping is deliberately tiny (reasoning effort `none`, verbosity `low`, no stored conversation) to keep the quota cost negligible. Disabled accounts are skipped; per-account failures are reported without aborting the batch. Complements `codex-switch index=N`, which already switches the active account on demand. (#182)
1315

1416
### Fixed
17+
- An account whose **local** client-side token bucket (the proactive rate limiter) is depleted is now given a short, auto-expiring rate-limit window so account selection rotates off it. Previously the request loop drained the bucket and skipped the account, but the drain-first `sticky` strategy (and the `hybrid` fast-path) re-selected the same depleted account on the next traversal iteration — the `attempted`-set guard then terminated the loop and returned a spurious 503 while other accounts still had quota. The window also feeds `getMinWaitTimeForFamily`, so an all-depleted pool waits for token refill instead of failing fast. (#183)
1518
- `codex-doctor --fix` now clears stale account-health state on accounts whose token refresh succeeds during the repair: an `auth-failure`/`network-error` cooldown and any `rateLimitResetTimes` markers are removed once the refresh proves the credential is alive. Previously `--fix` refreshed the token and tried to switch to the healthiest account, but left the stale cooldown/rate-limit state in place, so no account was eligible and the dead routing persisted — the only recovery was hand-editing `oc-codex-multi-auth-accounts.json`. The stale TUI quota cache is also cleared so diagnostics no longer reference an account index/count that no longer matches the pool. (fixes #171)
1619
- `codex-doctor` now surfaces a finding when a disabled `accountIdSource: "token"` entry shadows an enabled, org-backed account that shares its email (a leftover a fresh re-login can mint instead of updating the org account). It is flagged with a `codex-remove` hint rather than auto-removed, because the only link between the two records is email and email-only merges must not collapse distinct multi-org accounts (#64). (#171)
1720
- `codex-doctor --fix` no longer fails silently when a stored credential is genuinely dead: a failed token refresh now reports `N account(s) need re-login` and points the user at `opencode auth login`, instead of leaving an all-dark pool unrepaired with no surfaced cause. (#171)

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "oc-codex-multi-auth",
3-
"version": "6.3.4",
3+
"version": "6.4.0",
44
"description": "OpenCode plugin for ChatGPT Plus/Pro OAuth with Codex/GPT-5 routing, multi-account rotation, account switching, health checks, diagnostics, and recovery tools",
55
"main": "./dist/index.js",
66
"types": "./dist/index.d.ts",

0 commit comments

Comments
 (0)