Skip to content

Commit 9807f12

Browse files
authored
chore: release v2.1.13-beta.0 (#490)
Prerelease that ships the pinned-account 503 diagnostic surface from #487 (issue #486) to npm under the `beta` dist-tag. Users who can reproduce the recurring 503 should install via `npm i -g codex-multi-auth@beta` so the new structured `reason` and `account_skip_reasons` fields are visible in their next failure, then attach the body plus logs to issue #486 for root-cause analysis. Stable v2.1.13 will land once the underlying forecast-vs-runtime state desync is identified and patched.
1 parent 387651c commit 9807f12

6 files changed

Lines changed: 48 additions & 4 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": "codex-multi-auth",
3-
"version": "2.1.12",
3+
"version": "2.1.13-beta.0",
44
"description": "Install and operate codex-multi-auth for the official @openai/codex CLI with multi-account OAuth rotation, switching, health checks, and recovery tools.",
55
"interface": {
66
"composerIcon": "./assets/codex-multi-auth-icon.svg"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ codex-multi-auth doctor --json
383383

384384
## Release Notes
385385

386+
- Current prerelease: [docs/releases/v2.1.13-beta.0.md](docs/releases/v2.1.13-beta.0.md) — install via `npm i -g codex-multi-auth@beta`
386387
- Current stable: [docs/releases/v2.1.12.md](docs/releases/v2.1.12.md)
387388
- Previous stable: [docs/releases/v2.1.11.md](docs/releases/v2.1.11.md)
388389
- Earlier stable: [docs/releases/v2.1.10.md](docs/releases/v2.1.10.md)

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Public documentation for the `codex-multi-auth` Codex CLI multi-account OAuth ma
3232

3333
| Document | Focus |
3434
| --- | --- |
35+
| [releases/v2.1.13-beta.0.md](releases/v2.1.13-beta.0.md) | Current prerelease notes (install via `npm i -g codex-multi-auth@beta`) |
3536
| [releases/v2.1.12.md](releases/v2.1.12.md) | Current stable release notes |
3637
| [releases/v2.1.11.md](releases/v2.1.11.md) | Prior stable release notes |
3738
| [releases/v2.1.10.md](releases/v2.1.10.md) | Earlier stable release notes |

docs/releases/v2.1.13-beta.0.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# v2.1.13-beta.0
2+
3+
Beta prerelease that adds a diagnostic surface to the runtime rotation proxy's pinned-account 503 path. Issued so users who hit the recurring 503 reported in issue #486 can install the patched build, reproduce, and return the new structured `reason` field for root-cause analysis.
4+
5+
This is a **prerelease**. Stable `v2.1.13` will land once the underlying forecast-vs-runtime state desync is identified and patched.
6+
7+
## Install
8+
9+
```bash
10+
npm i -g codex-multi-auth@beta
11+
```
12+
13+
## Runtime Rotation
14+
15+
### Fixes
16+
17+
- Pinned-account 503 (`codex_pinned_account_unavailable`) now carries a structured `reason` field and a full `account_skip_reasons` map keyed by account index, mirroring the existing `writePoolExhausted` shape. Consumers can branch on the same payload across both 503 codes.
18+
- Human-readable `message` appends the skip reason in parentheses when present, for example `Pinned account 2 is currently unavailable (rate-limited); run ...`.
19+
- A missing skip reason resolves to explicit `null` in the response body and is recorded in `status.lastError` so a forecast-vs-runtime state desync becomes detectable instead of silently masked as `unknown`.
20+
- Extracted `buildPinnedUnavailableErrorBody` helper so the 503 payload shape is unit-testable in isolation; exported alongside a typed `PinnedUnavailableErrorBody` interface for stable external consumption.
21+
22+
## Release Hygiene
23+
24+
### Tests
25+
26+
- Added end-to-end regression coverage for the pinned-503 rate-limited and cooling-down paths; existing disabled-account case extended to assert the new structured fields.
27+
- Extended `chooseAccount` unit suite to cover every pinned skip reason returned by `AccountManager.getAccountRuntimeSkipReason`: `rate-limited`, `cooling-down:auth-failure`, `disabled`, `workspace-disabled`, `circuit-open`, `policy-blocked`, `missing`, `already-attempted`.
28+
- Added direct unit coverage for `buildPinnedUnavailableErrorBody` across the empty-map (`reason: null`), populated-map, null-`pinnedIndex`, and mismatched-pinned-entry shapes.
29+
30+
## Documentation
31+
32+
- `docs/reference/error-contracts.md` documents the new `reason` and `account_skip_reasons` fields on the pinned-503 payload.
33+
34+
## Known Gaps
35+
36+
- The 503 root cause from issue #486 (doctor reports all green, runtime still returns 503) is **not** fixed by this prerelease. Users who reproduce on this build should set `ENABLE_PLUGIN_REQUEST_LOGGING=1`, repro, and attach the new 503 body plus logs from `~/.codex/multi-auth/logs/codex-plugin/` to issue #486.
37+
- Plugins-disabled and per-project history-loss symptoms reported alongside #486 are tracked separately in #488 and #489.
38+
39+
## Refs
40+
41+
- Issue #486`[bug] 503 Service Unavailable`
42+
- PR #487`fix(runtime): surface skip reason in pinned 503 (#486)`

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": "codex-multi-auth",
3-
"version": "2.1.12",
3+
"version": "2.1.13-beta.0",
44
"description": "Codex CLI multi-account OAuth manager with account switching, health checks, runtime rotation, diagnostics, and recovery tools for @openai/codex",
55
"main": "./dist/index.js",
66
"types": "./dist/index.d.ts",

0 commit comments

Comments
 (0)