Skip to content

Commit d8306d5

Browse files
authored
chore: release v2.3.0-beta.1 (#512 login workspace + manual-callback fixes) (#514)
Bumps version to 2.3.0-beta.1 and adds release docs for the #512 fixes merged in #513. No code changes beyond the version bump. No npm publish.
1 parent d54d86f commit d8306d5

5 files changed

Lines changed: 68 additions & 5 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.3.0-beta.0",
3+
"version": "2.3.0-beta.1",
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"

docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ Public documentation for the `codex-multi-auth` Codex CLI multi-account OAuth ma
3232

3333
| Document | Focus |
3434
| --- | --- |
35-
| [releases/v2.3.0-beta.0.md](releases/v2.3.0-beta.0.md) | Current prerelease notes (install via `npm i -g codex-multi-auth@beta`) |
35+
| [releases/v2.3.0-beta.1.md](releases/v2.3.0-beta.1.md) | Current prerelease notes (install via `npm i -g codex-multi-auth@beta`) |
36+
| [releases/v2.3.0-beta.0.md](releases/v2.3.0-beta.0.md) | Prior prerelease notes |
3637
| [releases/v2.2.2.md](releases/v2.2.2.md) | Current stable release notes (install via `npm i -g codex-multi-auth`) |
3738
| [releases/v2.2.1.md](releases/v2.2.1.md) | Prior stable release notes |
3839
| [releases/v2.2.0.md](releases/v2.2.0.md) | Prior stable release notes |

docs/releases/v2.3.0-beta.1.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
## Account Login
2+
3+
### Bugfixes
4+
5+
- Stopped `codex-multi-auth login` from always printing `Added account` when a
6+
same-email / different-workspace login folded onto an existing saved entry.
7+
The CLI login path used local copies of `resolveAccountSelection` and
8+
`persistAccountPool` in `lib/codex-manager.ts` that had drifted from the
9+
workspace-aware versions in `lib/runtime/` (added for #491 and used only by
10+
the runtime proxy); the CLI copies never persisted `workspaces` and
11+
unconditionally reported `Added account`. The login flow now reports the real
12+
outcome — `Added account`, `Updated existing account`, or
13+
`Rebound workspace for existing account` — based on whether the write
14+
inserted a new entry, refreshed an existing one, or surfaced a
15+
previously-untracked workspace (issue #512).
16+
- Persisted token-derived workspaces on the saved account so
17+
`codex-multi-auth workspace <account>` is usable after a same-email
18+
multi-workspace login. Rows no longer save with `workspaces: null`;
19+
per-workspace `enabled`/`disabledAt` state is preserved across re-logins, and
20+
the explicit `login --org <id>` binding now tracks workspaces too (previously
21+
the override path returned before workspace discovery).
22+
- Classified the first workspace-aware re-login of a pre-#491 account (one with
23+
no tracked workspaces yet) as `Updated existing account` rather than
24+
`Rebound workspace`, so quiet first-time enrichment is not mislabeled as a
25+
rebind.
26+
27+
### Manual sign-in
28+
29+
- Surfaced real validation errors from `codex-multi-auth login --manual`
30+
instead of reporting every failure as `Cancelled.`. The manual callback
31+
reader returned `null` for a genuine user cancel, a callback URL missing the
32+
code/state parameter, and an OAuth state mismatch alike, and the caller
33+
treated all three as a cancellation. A new pure classifier
34+
(`classifyManualCallbackInput`) distinguishes `code` / `cancelled` /
35+
`invalid` / `state-mismatch`; `invalid` and `state-mismatch` now exit non-zero
36+
with a specific, actionable message (`callbackInvalid` /
37+
`callbackStateMismatch`), while a genuine cancellation is unchanged
38+
(issue #512 follow-up).
39+
40+
## Release Hygiene
41+
42+
### Tests
43+
44+
- Extracted the account-pool fold (dedup → insert/update/rebound →
45+
workspace-tracking → active-index) into pure helpers
46+
(`applyAccountPoolResults`, `buildInsertedAccount`, `buildUpdatedAccount`,
47+
`mergeAccountWorkspaces`, `resolveCurrentWorkspaceIndex`) and covered them with
48+
unit tests, including an end-to-end reproduction of the same-email
49+
multi-workspace scenario driven through the real `findMatchingAccountIndex`
50+
dedup strategy.
51+
- Added CLI regressions: `login --org <id>` persists workspace tracking, a
52+
mismatched manual-callback state exits non-zero with the state-mismatch
53+
message, and a malformed manual-callback URL exits non-zero with the
54+
`callbackInvalid` message — none of which persist an account.
55+
- Full classifier coverage for the manual-callback contract, including the
56+
reporter's "pasted a localhost callback URL but still saw Cancelled" case.
57+
58+
### Notes
59+
60+
- Prerelease published under the `beta` dist-tag
61+
(`npm i -g codex-multi-auth@beta`). This is a bugfix beta on the 2.3.0 line;
62+
the #509 sequential drain-first feature from `2.3.0-beta.0` is unchanged.

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.3.0-beta.0",
3+
"version": "2.3.0-beta.1",
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)