Skip to content

v2.1.13-beta.1

Pre-release
Pre-release

Choose a tag to compare

@ndycode ndycode released this 31 May 02:35
33e4b22

Accounts

Bugfixes

  • Account workspaces and currentWorkspaceIndex now survive a load
    round-trip. The strict V3 storage schema (AccountMetadataV3Schema) did not
    declare these fields, so Zod stripped them on every read; login captured the
    workspaces and wrote them to disk, but the next load wiped them. This is the
    root cause of workspace labels appearing empty after login and of two
    same-email accounts being indistinguishable.
  • formatAccountLabel surfaces the active workspace name, so same-email accounts
    in different workspaces stay distinguishable, for example
    Account 1 ([Personal Plus], user@gmail.com, id:g-AAAA). All prior label
    formats are preserved when no workspace is tracked.

Features

  • status / list now list every workspace beneath an account that tracks more
    than one, marking the active workspace and flagging disabled ones.
  • New workspace <account> [workspace] command: with only an account index it
    lists that account's workspaces; with a workspace index it sets the active
    workspace and persists it.
  • login --org <org_id> (and --org=<id>) binds a login to a specific
    workspace/org. It reuses the CODEX_AUTH_ACCOUNT_ID override that every login
    resolver already honors, scoped to the invocation and restored afterward, so a
    second workspace can be registered on demand instead of always resolving to the
    default org.

Release Hygiene

Tests

  • Schema round-trip preservation and a workspace-load regression that locks the
    fix in place.
  • Label disambiguation coverage and formatWorkspaceLines output coverage
    (active marker, disabled annotation, indentation).
  • Nine workspace-command cases (list, switch, persistence, already-active
    no-op, disabled rejection, out-of-range and non-numeric indices).
  • login --org argument parsing and missing-value handling.

Notes

  • The issue #486 503 root cause (doctor reports all green, runtime still returns 503) is not fixed by this prerelease.
  • Whether a real two-workspace login returns both orgs in one token or one at a time is unconfirmed. Both paths are supported (the workspace command for the former, login --org for the latter); a sanitized accounts.json from a real two-workspace account would confirm which path users hit.