chore(release): 2.8.1 - #651
Conversation
A corrective release. No new features and no configuration changes. Patch rather than minor: 2.8.0 was minor because it changed where the official CLI keeps its state. This one only corrects behaviour that was already meant to work, adds no settings, and writes nothing new to disk — the same shape as 2.7.1. mcodex resume and mcodex fork hung on a blank TUI whenever runtime rotation was enabled. Both are interactive TUI entry points that carry a forwarded subcommand, so 2.8.0's interactive classification — which matched only an invocation with no subcommand — missed them and left them on the shadow home, whose mirror deliberately omits the runtime SQLite state. Both now use the canonical-home transport, with rotation still enabled. The wrapper could also fail to return to the shell after an interrupted or non-zero exit, because helper shutdown left the detached helper's pipes referenced. Shutdown is now bounded and releases those handles. Separately, --help no longer starts a rotation transport for any request command. Also clears four high-severity advisories that were failing npm run audit:ci: hono 4.12.21 -> 4.12.33 and undici 6.25.0 -> 6.28.0, plus brace-expansion and postcss pinned through overrides for the dev graph. Closes #647. Landed as #648, #649, and #650. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0139f4WZCmWykXZcdEmWTusj
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
📝 Walkthroughminor release with no new features, configuration changes, or on-disk formats. it fixes runtime-rotation hangs for
Walkthroughthe pull request publishes version 2.8.1. it updates package metadata, release notes, stable-release links, reference documentation, and documented test statistics. Changesrelease metadata and documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
📋 Issue PlannerLet us write the prompt for your AI agent so you can ship faster (with fewer bugs). View plan for ticket: ✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/releases/v2.8.1.md`:
- Around line 50-56: The upgrade notes in the “Upgrade notes” section should
distinguish “no migration required” from “no action required”: retain that no
migration or settings changes are needed, but add the command users should run
to install v2.8.1 and state the expected result that `resume` works without the
`CODEX_MULTI_AUTH_RUNTIME_ROTATION_PROXY=0` workaround and account rotation
remains enabled. Follow the documentation template by including the relevant
quick path, troubleshooting guidance if installation or resume fails, and any
new npm scripts if applicable.
In `@package.json`:
- Line 3: Restore the package.json undici dependency to the repository-required
exact version 6.25.0; update docs/releases/v2.8.1.md lines 44-46 and
CHANGELOG.md line 20 to remove or correct the 6.25.0-to-6.28.0 upgrade
documentation, unless the policy is explicitly approved and updated instead.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: daa34fc4-6616-42b7-8e6c-1ca91ae32551
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (12)
.codex-plugin/plugin.jsonAGENTS.mdCHANGELOG.mdREADME.mddocs/README.mddocs/reference/commands.mddocs/reference/public-api.mddocs/reference/settings.mddocs/releases/v2.8.1.mdpackage.jsontest/AGENTS.mdtest/README.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (17)
docs/**/*.md
📄 CodeRabbit inference engine (docs/STYLE_GUIDE.md)
docs/**/*.md: User-facing documentation should follow the page template: Title and one-line lead, Quick path commands, Core operational workflow, Troubleshooting or failure handling, and Related links
Use short sections and scan-friendly tables in documentation where they improve clarity
Prefer direct, actionable language in documentation
Use runnable command examples in documentation
Explain expected outcomes after critical commands in documentation
Keep terminology consistent with runtime names in documentation
Avoid speculative language when behavior is deterministic in documentation
Put the user problem in the first paragraph before implementation detail
Use descriptive page titles such ascodex-multi-auth Featuresinstead of generic titles on public docs
Do not repeat keyword lists in every section; search terms should appear only where they help a developer understand the page
Canonical command family iscodex-multi-auth ...
Canonical runtime root is~/.codex/multi-auth
Runtime rotation must be described as default-on unless the release policy changes
Legacy command/path references belong only in migration contexts in documentation
Compatibility aliases (codex multi auth,codex multi-auth,codex multiauth) belong only in command reference, troubleshooting, or migration contexts
Keep command flags aligned with runtime usage text in documentation
Avoid non-runnable command snippets in documentation
Avoid conflicting path guidance across documentation
Avoid legacy-first onboarding language in documentationOrganize repository documentation according to the defined layers: product entry, user operations, reference, and development.
docs/**/*.md: Do not describecodex-multi-authas replacing@openai/codexor publishing the globalcodexbinary; preserve the official CLI's ownership ofcodex.
Usecodex-multi-authfor account management, and reservecodex-multi-auth-codexormcodexfor intentionally forwarding official Codex commands th...
Files:
docs/reference/public-api.mddocs/reference/settings.mddocs/reference/commands.mddocs/README.mddocs/releases/v2.8.1.md
docs/reference/**/*.md
📄 CodeRabbit inference engine (docs/STYLE_GUIDE.md)
New flags/settings/paths must be reflected in
docs/reference/*
docs/reference/**/*.md: Keep command, API, error-contract, settings, and storage-path details in the canonical reference documentation.
Document compatibility aliases (codex multi auth,codex multi-auth, andcodex multiauth) only in command-reference, troubleshooting, or migration sections.Document
codex-multi-authas the primary account-manager CLI, with compatibility aliases and the four published binaries (codex-multi-auth,codex-multi-auth-codex,codex-multi-auth-app-launcher, andmcodex).
Files:
docs/reference/public-api.mddocs/reference/settings.mddocs/reference/commands.md
docs/**/*.{md,mdx}
📄 CodeRabbit inference engine (docs/troubleshooting.md)
Document that
codex-multi-auth-codexis the optional forwarding wrapper, whilecodex-multi-authis the canonical account-manager command family; the package does not publish a globalcodexbinary.Document the canonical command names, runtime paths, configuration precedence, storage migration behavior, and upgrade procedures consistently across the referenced documentation.
Files:
docs/reference/public-api.mddocs/reference/settings.mddocs/reference/commands.mddocs/README.mddocs/releases/v2.8.1.md
docs/reference/**/*
📄 CodeRabbit inference engine (docs/reference/public-api.md)
For intentional contract breaks, update affected reference documentation, including command, settings, storage-path, or error-contract documentation as applicable.
Files:
docs/reference/public-api.mddocs/reference/settings.mddocs/reference/commands.md
docs/**
⚙️ CodeRabbit configuration file
keep README, SECURITY, and docs consistent with actual CLI flags and workflows. whenever behavior changes, require updated upgrade notes and mention new npm scripts.
Files:
docs/reference/public-api.mddocs/reference/settings.mddocs/reference/commands.mddocs/README.mddocs/releases/v2.8.1.md
**/package.json
📄 CodeRabbit inference engine (SECURITY.md)
**/package.json: Pinhonoto version4.12.21or higher to avoid vulnerabilitiesGHSA-3hrh-pfw6-9m5x,GHSA-2gcr-mfcq-wcc3,GHSA-xrhx-7g5j-rcj5, andGHSA-f577-qrjj-4474(Set-Cookie injection,app.mount()path-decoding, IPv6 IP-restriction bypass, and JWT scheme-acceptance issues)
Pinrollupto version^4.59.0or higher to avoid vulnerabilities in the<4.59.0range as surfaced bynpm audit, keeping the Vite and Vitest transitive dependency graph secure
Pinundiciexactly to version6.25.0as it is the only runtime HTTP dependency and its dispatcher behavior is part of the rotation proxy's tested surface. Move toundici7.xonly after Node 18 support is dropped
Files:
package.json
docs/{README.md,docs/index.md,docs/README.md}
📄 CodeRabbit inference engine (docs/STYLE_GUIDE.md)
Root README and docs landing pages should naturally include
Codex CLI,multi-account OAuth,account switching,health checks,runtime rotation,diagnostics, andrecoverywhen those topics are in scope
Files:
docs/README.md
docs/{README.md,package.json,docs/development/GITHUB_DISCOVERABILITY.md}
📄 CodeRabbit inference engine (docs/STYLE_GUIDE.md)
Keep the repository description, package description, README lead, and
docs/development/GITHUB_DISCOVERABILITY.mdaligned
Files:
docs/README.md
docs/**/README.md
📄 CodeRabbit inference engine (docs/DOCUMENTATION.md)
Use
README.mdas the canonical project entry point.
Files:
docs/README.md
docs/README.md
📄 CodeRabbit inference engine (docs/DOCUMENTATION.md)
Use
docs/README.mdas the canonical documentation portal.
Files:
docs/README.md
docs/{README.md,docs/**/*.md,SECURITY.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md}
📄 CodeRabbit inference engine (docs/DOCUMENTATION.md)
docs/{README.md,docs/**/*.md,SECURITY.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md}: Usecodex-multi-authas the canonical package name,codex-multi-auth ...as the canonical account command family, and~/.codex/multi-authas the canonical storage root unless explicitly overridden.
When runtime behavior changes, update the documentation sources in the prescribed order, including onboarding, public framing, feature coverage, references, troubleshooting, development documentation, upgrade guidance, storage paths, governance files, and issue/PR templates as applicable.
Files:
docs/README.md
docs/{README.md,docs/**/*.md}
📄 CodeRabbit inference engine (docs/DOCUMENTATION.md)
docs/{README.md,docs/**/*.md}: Keep legacy paths, flows, and scoped package references only in migration or compatibility sections.
Document runtime rotation as default-on unless a future release intentionally changes that policy.
Files:
docs/README.md
docs/{README.md,docs/**/*.md,SECURITY.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md,.github/**/*.md}
📄 CodeRabbit inference engine (docs/DOCUMENTATION.md)
Before merge, verify that documented commands are executable, CLI flags match runtime parser output, paths match runtime modules, internal links are valid, OS-sensitive operations have cross-platform instructions, guidance is consistent, and discoverability terms are accurate without keyword stuffing or ranking promises.
Files:
docs/README.md
test/**
⚙️ CodeRabbit configuration file
tests must stay deterministic and use vitest. demand regression cases that reproduce concurrency bugs, token refresh races, and windows filesystem behavior. reject changes that mock real secrets or skip assertions.
Files:
test/README.mdtest/AGENTS.md
docs/releases/**/*.md
📄 CodeRabbit inference engine (docs/releases/v0.1.1.md)
Documentation architecture must follow dual-track navigation with separate operator and maintainer paths
Document Windows and WSL side-by-side operation, including fixed callback-port behavior, listener inspection on both sides, the
--device-authescape hatch, and separate state directories.
Files:
docs/releases/v2.8.1.md
docs/releases/**/*
📄 CodeRabbit inference engine (docs/releases/v2.4.0.md)
docs/releases/**/*: The--account <index|email|id>option andCODEX_MULTI_AUTH_FORCE_ACCOUNTmust force a single Codex invocation to the selected configured account; an all-digit selector is always interpreted as a 1-based index.
When both are provided, the explicit--accountoption must take precedence overCODEX_MULTI_AUTH_FORCE_ACCOUNT.
Account forcing must be ephemeral: it may affect only the current invocation's runtime rotation proxy and must not mutate the persistedswitchpin or affect concurrent invocations.
Forced account selection must fail hard: the session must not rotate, and unavailable or rate-limited accounts must fail through the existingcodex_pinned_account_unavailablepath rather than falling back to another account.
If runtime rotation is disabled,CODEX_MULTI_AUTH_BYPASS=1, or the selector does not resolve to a configured account, the wrapper must exit non-zero without launching Codex.
The wrapper must resolve the selector against the same scoped accounts pool used by the proxy, convert it to a 0-based index, strip the launcher-only--accountargument before forwarding arguments to the official Codex CLI, and propagate the resolved index throughCODEX_MULTI_AUTH_FORCE_ACCOUNT_INDEX.
The proxy must selectforcedAccountIndex ?? persistedPinnedIndex, using the existing deterministic-pin selection path without changing other routing behavior.
The internal forced-account environment variable must be scrubbed from unrelated background and management child processes so it cannot leak beyond the single forwarded run.
Tests must cover forced deterministic selection, unavailable-account fail-hard behavior without an upstream call, environment-variable consumption and precedence including forced index0, launcher resolution by index/email/account ID and--account=syntax, flag-over-environment precedence, disabled rotation, out-of-range errors, argument stripping, and detached-helper propagation.
Document the account-forcing fea...
Files:
docs/releases/v2.8.1.md
docs/releases/**/*.{json,md}
📄 CodeRabbit inference engine (docs/releases/v2.5.0.md)
Document GPT-5.6 tiers,
max/ultra,ultra→maxwire behavior, effort coercion, and thegpt-5.6→ Sol alias in configuration references and templates.
Files:
docs/releases/v2.8.1.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:30:56.824Z
Learning: Use project-scoped account storage under `~/.codex/multi-auth/projects/<project-key>/...` for repository-specific workflows.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:30:56.824Z
Learning: Use documented error contracts and maintain stable documentation for installation, configuration, troubleshooting, upgrades, public APIs, storage paths, and releases.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:00.277Z
Learning: Treat historical plans, audits, and snapshot archives as archival material; prefer current architecture documentation, reference documentation, and source code for present guidance.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: The `--account` selector must be ephemeral, must not modify persisted switch state, must prevent rotation, and must fail rather than silently selecting another account when the requested account is unavailable.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: An all-digit `--account` selector is always interpreted as a 1-based account index, not an account ID.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: When `--account` is used, the runtime rotation proxy must be enabled; otherwise the wrapper must exit non-zero without launching Codex.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Paused or drained accounts must be excluded from hybrid selection and rotation; manually pinned accounts may still be targeted but must surface as unavailable if policy-blocked.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: `switch`, `unpin`, and `best` must update `affinityGeneration`, and the runtime proxy must clear session affinity when it observes a newer generation.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: The local bridge must bind only to loopback, use a loopback-only runtime base URL, require bearer authentication by default, and require `requireAuth=true` whenever a runtime client API key is configured.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: The bridge must expose only `/health`, `/v1/models`, and `/v1/responses`; inbound cookies and proxy-auth headers must be stripped before forwarding.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Plain local bridge tokens may be printed only on creation or rotation; token storage must persist SHA-256 hashes, prefixes, and labels rather than plaintext tokens.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Usage-ledger rows must not contain prompts, tokens, authorization headers, raw account emails, or raw sensitive account IDs.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: `uninstall --clear-accounts` must clearly represent irreversible removal of stored account credentials, while `--dry-run` must preview actions without writing storage.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Packaged-app integration must use reversible configuration and launcher binding, back up the original Codex configuration or shortcut targets, and must not patch official app files.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Live diagnostic probes must default to model `gpt-5.6-sol`, while request routing must retain default model `gpt-5.5` unless explicitly overridden.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: Missing or malformed quota reset timestamps must never fail an account check; the percentage remains visible and the reset clause is omitted.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: The `history` command must be read-only, perform no network calls, and list sessions across providers without mutating Codex or multi-auth state.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:08.493Z
Learning: `verify --paths` must validate storage-path resolution and sandbox behavior, accepting paths inside home and temporary directories while rejecting outside-sandbox escape candidates; if no safe rejection candidate exists, the probe must be skipped successfully.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:16.388Z
Learning: Do not remove existing Tier B exported symbols or positional signatures in the 2.x release line; additive changes are permitted, and options-object forms are preferred for new callers.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:16.388Z
Learning: Breaking Tier A changes require a major version; additive Tier A changes require a minor version; Tier A fixes or documentation-only clarifications require a patch version. Breaking changes require explicit migration documentation and review sign-off.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Persist runtime settings under the compatibility key `pluginConfig`; store dashboard settings under `dashboardDisplaySettings` in `~/.codex/multi-auth/settings.json`, relocating the root when `CODEX_MULTI_AUTH_DIR` is set.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Sync operations must always show a preview before apply; blocked target states must not apply changes; preserve the destination active selection and destination-only accounts.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Named backup export must prompt for a filename, append `.json` when omitted, reject path separators, traversal (`..`), `.rotate.`, `.tmp`, and `.wal` suffixes, and fail safely on collisions without overwriting by default.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Keep `backgroundResponses` disabled by default; enable it only when callers intentionally request the stateful Responses `background: true` path with `store=true`.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Use bounded retry settings when enabling `retryAllAccountsRateLimited`; configure `retryAllAccountsMaxRetries` and `retryAllAccountsMaxWaitMs` to prevent unbounded waits or retries.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Preserve the documented environment-variable precedence and semantics, including `--account` taking precedence over `CODEX_MULTI_AUTH_FORCE_ACCOUNT` and internal `CODEX_MULTI_AUTH_FORCE_ACCOUNT_INDEX` not being manually configured.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Installed wrappers may perform a best-effort daily npm version check, but must only print the installation command and must not mutate the installed package.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: After configuration changes, validate with `codex-multi-auth status`, `codex-multi-auth check`, `codex-multi-auth forecast --live`, and `codex-multi-auth config explain`.
Learnt from: CR
Repo: ndycode/codex-multi-auth
Timestamp: 2026-08-02T10:31:23.274Z
Learning: Recommended defaults should keep smart sorting, automatic quota fetching, live account sync, session affinity, preemptive quota deferral, proactive refresh, and multi-process PID offset enabled; keep background responses disabled unless intentionally required.
🔇 Additional comments (10)
test/AGENTS.md (1)
9-9: LGTM!test/README.md (1)
5-5: LGTM!.codex-plugin/plugin.json (1)
3-3: LGTM!AGENTS.md (1)
7-7: LGTM!docs/reference/commands.md (1)
3-3: LGTM!docs/reference/public-api.md (1)
3-3: LGTM!README.md (1)
394-394: LGTM!docs/README.md (1)
35-36: LGTM!docs/reference/settings.md (1)
5-5: 🗄️ Data Integrity & Integrationno action needed. the reference version matches
package.json,package-lock.json, andlib/config.ts.CHANGELOG.md (1)
24-24: 🩺 Stability & Availabilityconfirm the shutdown regression coverage before keeping this changelog entry.
CHANGELOG.md:24says the tests bound a subprocess for 12s and use a per-test timeout longer than that bound. Show deterministic vitest cases cover both interrupted and non-zero subprocess exits, concurrent shutdown races, and Windows process and stream cleanup. Add any missing coverage here or adjust the changelog so it does not claim coverage that does not exist.
The upgrade section said "nothing to do", which is true of migration but misleading as guidance: anyone on 2.8.0 still has to install the release to receive the fixes. Add the install command, the version check, a resume check that exercises the actual bug, and the command to confirm rotation is back on after dropping the CODEX_MULTI_AUTH_RUNTIME_ROTATION_PROXY=0 workaround. Reported by CodeRabbit on #651. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0139f4WZCmWykXZcdEmWTusj
Summary
Release commit for 2.8.1, already published to npm (
npm view codex-multi-auth version→2.8.1).A corrective release: no new features, no configuration changes, nothing new written to disk.
Closes #647. Landed as #648, #649, and #650.
What Changed
Version stamps —
package.json,package-lock.json,.codex-plugin/plugin.json,AGENTS.md, and the threedocs/reference/*.md(package \x.y.z`)stamps. Test-count stats intest/AGENTS.mdandtest/README.md` refreshed to 5292 while they were being touched (they had been stale since 2.8.0).Release notes — new
docs/releases/v2.8.1.md, aCHANGELOG.mdentry, and both README pointers moved to it.docs/README.mdkeepsv2.8.0.mdin the archive list, since the docs portal is required to link every release note.Why patch, not minor
2.8.0 was minor because it changed where the official CLI keeps its state — it began writing
cli_auth_credentials_storeinto~/.codex/config.tomlproactively. 2.8.1 only corrects behaviour that was already meant to work, adds no settings, and changes no on-disk formats. That is the same shape as 2.7.1, which was also a patch.Validation
npm run lintnpm run typechecknpm test— 5288 passed, 4 skipped, 0 failednpm test -- test/documentation.test.ts— 32/32npm run buildnpm run audit:ci— exits 0npm run pack:check— 799 kB across 920 filesAdditional Notes
The version bump and the release notes cannot be separated in this repo:
test/documentation.test.tsrequiresdocs/releases/v<version>.mdto exist and be linked from both READMEs, so a bump on its own fails five documentation checks. Worth knowing for any future release that wants to stage the two.note: greptile review for oc-chatgpt-multi-auth. cite files like
lib/foo.ts:123. confirm regression tests + windows concurrency/token redaction coverage.Greptile Summary
this release commit stamps version 2.8.1 and publishes release notes for fixes already landed in earlier pull requests.
Confidence Score: 5/5
the release-only changes appear safe to merge.
no blocking failure remains in the eligible follow-up scope.
Important Files Changed
Reviews (2): Last reviewed commit: "docs(release): give 2.8.1 notes a runnab..." | Re-trigger Greptile
Context used: