Skip to content

Commit f28c079

Browse files
committed
docs: clean release policy and metadata guidance
1 parent ab76069 commit f28c079

9 files changed

Lines changed: 101 additions & 31 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
All notable changes to this project are documented in this file.
44
Dates use ISO format (`YYYY-MM-DD`).
55

6-
This repository's canonical public release line is currently `0.x`.
6+
This repository's current stable release line is `1.x`.
7+
Current stable release notes live in `docs/releases/`.
8+
This top-level changelog preserves the foundational `0.x` milestones and points older iteration history to `docs/releases/legacy-pre-0.1-history.md`.
79

810
## [0.1.8] - 2026-03-11
911

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Codex CLI-first multi-account OAuth manager for the official `@openai/codex` CLI
1111
> [!NOTE]
1212
> Legacy scoped prerelease package `@ndycode/codex-multi-auth` is migration-only.
1313
> Use `codex-multi-auth` for all new installs.
14+
1415
## What You Get
1516

1617
- Canonical `codex auth ...` workflow for account login, switching, checks, and diagnostics
@@ -322,9 +323,9 @@ codex auth doctor --json
322323
## Release Notes
323324

324325
- Current stable: [docs/releases/v1.2.6.md](docs/releases/v1.2.6.md)
325-
- Recent patch release: [docs/releases/v1.2.5.md](docs/releases/v1.2.5.md)
326-
- Previous stable: [docs/releases/v1.2.2.md](docs/releases/v1.2.2.md)
327-
- Earlier stable: [docs/releases/v1.2.1.md](docs/releases/v1.2.1.md)
326+
- Previous stable: [docs/releases/v1.2.5.md](docs/releases/v1.2.5.md)
327+
- Earlier stable: [docs/releases/v1.2.4.md](docs/releases/v1.2.4.md)
328+
- Full release archive: [docs/README.md#release-history](docs/README.md#release-history)
328329
- Archived prerelease: [docs/releases/v0.1.0-beta.0.md](docs/releases/v0.1.0-beta.0.md)
329330

330331
## License

SECURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Security updates are provided for the current maintained release line.
66

77
| Version line | Status |
88
| --- | --- |
9-
| `0.x` latest | Supported |
10-
| pre-`0.x` historical branches | Not supported |
9+
| `1.x` latest | Supported |
10+
| pre-`1.0` historical releases | Not supported |
1111

1212
---
1313

@@ -77,7 +77,7 @@ The following are not treated as vulnerabilities in this repository:
7777

7878
Security override rationale (`package.json` -> `overrides`):
7979

80-
- `hono`: pinned to `^4.12.3` to keep builds out of the vulnerable `4.12.0-4.12.1` range reported in `GHSA-xh87-mx6m-69f3` (authentication bypass advisory).
80+
- `hono`: pinned to `4.12.10` to keep builds out of the vulnerable `4.12.0-4.12.1` range reported in `GHSA-xh87-mx6m-69f3` (authentication bypass advisory).
8181
- `rollup`: pinned to `^4.59.0` to keep the Vite and Vitest transitive graph above the vulnerable `<4.59.0` range surfaced by `npm audit`.
8282

8383
Before release and after dependency changes:

docs/DOCUMENTATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Canonical governance for repository documentation quality and consistency.
5656
3. Canonical storage root: `~/.codex/multi-auth` unless explicitly overridden.
5757
4. Compatibility aliases (`codex multi auth`, `codex multi-auth`, `codex multiauth`) belong only in command reference, troubleshooting, or migration sections.
5858
5. Legacy paths/flows and scoped package references belong only in migration and compatibility sections.
59-
6. Public release line is `0.x`; historical pre-`0.1.0` entries are archived separately.
59+
6. Current stable release line is `1.x`; foundational `0.x` and pre-`0.1.0` entries stay archived separately.
6060

6161
---
6262

docs/README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,24 @@ Public documentation for `codex-multi-auth`.
2323
| [configuration.md](configuration.md) | Stable defaults, precedence, and environment overrides |
2424
| [architecture.md](architecture.md) | Public system overview of the wrapper, storage, and optional plugin runtime |
2525
| [privacy.md](privacy.md) | Data handling and local storage behavior |
26-
| [releases/v1.2.6.md](releases/v1.2.6.md) | Stable release notes |
26+
27+
---
28+
29+
## Release History
30+
31+
| Document | Focus |
32+
| --- | --- |
33+
| [releases/v1.2.6.md](releases/v1.2.6.md) | Current stable release notes |
2734
| [releases/v1.2.5.md](releases/v1.2.5.md) | Previous stable release notes |
2835
| [releases/v1.2.4.md](releases/v1.2.4.md) | Earlier stable release notes |
29-
| [releases/v1.2.2.md](releases/v1.2.2.md) | Earlier stable release notes |
30-
| [releases/v1.2.1.md](releases/v1.2.1.md) | Earlier stable release notes |
31-
| [releases/v1.2.0.md](releases/v1.2.0.md) | Archived stable release notes |
32-
| [releases/v0.1.7.md](releases/v0.1.7.md) | Archived stable release notes |
33-
| [releases/v0.1.6.md](releases/v0.1.6.md) | Archived stable release notes |
34-
| [releases/v0.1.5.md](releases/v0.1.5.md) | Archived stable release notes |
36+
| [releases/v1.2.2.md](releases/v1.2.2.md) | Stable archive |
37+
| [releases/v1.2.1.md](releases/v1.2.1.md) | Stable archive |
38+
| [releases/v1.2.0.md](releases/v1.2.0.md) | Stable archive |
39+
| [releases/v0.1.7.md](releases/v0.1.7.md) | Pre-1.0 stable archive |
40+
| [releases/v0.1.6.md](releases/v0.1.6.md) | Pre-1.0 stable archive |
41+
| [releases/v0.1.5.md](releases/v0.1.5.md) | Pre-1.0 stable archive |
3542
| [releases/v0.1.0-beta.0.md](releases/v0.1.0-beta.0.md) | Archived prerelease notes |
43+
| [releases/legacy-pre-0.1-history.md](releases/legacy-pre-0.1-history.md) | Archived pre-0.1 changelog history |
3644

3745
---
3846

@@ -56,8 +64,7 @@ Public documentation for `codex-multi-auth`.
5664
| [reference/error-contracts.md](reference/error-contracts.md) | CLI, JSON, and helper error semantics |
5765
| [releases/v1.2.6.md](releases/v1.2.6.md) | Current stable release notes |
5866
| [releases/v0.1.0-beta.0.md](releases/v0.1.0-beta.0.md) | Archived prerelease reference |
59-
| [Daily Use release notes](#daily-use) | Stable, previous, and archived release notes |
60-
| [releases/legacy-pre-0.1-history.md](releases/legacy-pre-0.1-history.md) | Archived pre-0.1 changelog history |
67+
| [Release history](#release-history) | Stable, previous, and archived release notes |
6168

6269
---
6370

docs/_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
theme: jekyll-theme-hacker
2-
title: codex-multi-auth docs
2+
title: Codex Multi Auth Docs
33
description: Codex CLI multi-account OAuth documentation
44
show_downloads: false

docs/reference/public-api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This project uses tiered API stability.
1010

1111
### Tier A: Stable APIs
1212

13-
Stable APIs are covered by semver compatibility guarantees and must remain backward-compatible inside the `0.x` line unless explicitly documented.
13+
Stable APIs are covered by semver compatibility guarantees and must remain backward-compatible inside the current `1.x` line unless explicitly documented.
1414

1515
- Package root plugin entrypoint exports:
1616
- `OpenAIOAuthPlugin`
@@ -103,7 +103,7 @@ These behaviors are compatibility guarantees for the current release line becaus
103103
- Tier A bug fix or doc-only clarification: `PATCH`
104104
- Tier B additive compatibility improvement: usually `PATCH` or `MINOR` depending on caller impact
105105

106-
This repository currently ships on a `0.x` line, but breaking changes still require explicit migration documentation and review sign-off.
106+
This repository currently ships on a `1.x` line, and breaking changes still require explicit migration documentation and review sign-off.
107107

108108
---
109109

docs/upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Upgrade Guide
22

3-
Migrate legacy installs to the canonical `codex-multi-auth` workflow on the `0.x` release line.
3+
Migrate legacy installs to the canonical `codex-multi-auth` workflow on the current `1.x` release line.
44

55
---
66

test/documentation.test.ts

Lines changed: 70 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,18 @@ function readPackageVersion(): string {
3434
let packageVersion = "";
3535
let currentStableReleaseDoc = "";
3636
// These stay manual so the docs portal keeps an intentional short stable-history window.
37-
const previousStableReleaseDoc = "docs/releases/v1.2.2.md";
38-
const earlierStableReleaseDoc = "docs/releases/v1.2.1.md";
37+
const previousStableReleaseDoc = "docs/releases/v1.2.5.md";
38+
const earlierStableReleaseDoc = "docs/releases/v1.2.4.md";
39+
const stableArchiveReleaseDocs = [
40+
"docs/releases/v1.2.2.md",
41+
"docs/releases/v1.2.1.md",
42+
"docs/releases/v1.2.0.md",
43+
];
44+
const preOneArchiveReleaseDocs = [
45+
"docs/releases/v0.1.7.md",
46+
"docs/releases/v0.1.6.md",
47+
"docs/releases/v0.1.5.md",
48+
];
3949

4050
function getUserDocs(): string[] {
4151
return [
@@ -57,9 +67,8 @@ function getUserDocs(): string[] {
5767
currentStableReleaseDoc,
5868
previousStableReleaseDoc,
5969
earlierStableReleaseDoc,
60-
"docs/releases/v0.1.7.md",
61-
"docs/releases/v0.1.6.md",
62-
"docs/releases/v0.1.5.md",
70+
...stableArchiveReleaseDocs,
71+
...preOneArchiveReleaseDocs,
6372
"docs/releases/v0.1.4.md",
6473
"docs/releases/v0.1.3.md",
6574
"docs/releases/v0.1.1.md",
@@ -160,17 +169,21 @@ function compareSemverDescending(left: string, right: string): number {
160169
expect(portal).toContain(`releases/v${packageVersion}.md`);
161170
expect(portal).toContain(previousStableReleaseDoc.replace("docs/", ""));
162171
expect(portal).toContain(earlierStableReleaseDoc.replace("docs/", ""));
163-
expect(portal).toContain("releases/v0.1.7.md");
164-
expect(portal).toContain("releases/v0.1.6.md");
165-
expect(portal).toContain("releases/v0.1.5.md");
172+
for (const archivedDoc of stableArchiveReleaseDocs) {
173+
expect(portal).toContain(archivedDoc.replace("docs/", ""));
174+
}
175+
for (const archivedDoc of preOneArchiveReleaseDocs) {
176+
expect(portal).toContain(archivedDoc.replace("docs/", ""));
177+
}
166178
expect(portal).toContain("releases/v0.1.0-beta.0.md");
167179
expect(portal).toContain("releases/legacy-pre-0.1-history.md");
168180
expect(portal).toContain(
169-
"| [Daily Use release notes](#daily-use) | Stable, previous, and archived release notes |",
181+
"| [Release history](#release-history) | Stable, previous, and archived release notes |",
170182
);
171183
expect(readme).toContain(currentStableReleaseDoc);
172184
expect(readme).toContain(previousStableReleaseDoc);
173185
expect(readme).toContain(earlierStableReleaseDoc);
186+
expect(readme).toContain("docs/README.md#release-history");
174187

175188
const beta = read("docs/releases/v0.1.0-beta.0.md");
176189
expect(beta).toContain("Archived");
@@ -428,7 +441,24 @@ function compareSemverDescending(left: string, right: string): number {
428441
expect(settingsRef).toContain("- `menuStatuslineFields`");
429442
});
430443

431-
it("keeps changelog aligned with canonical 0.x release policy", () => {
444+
it("keeps release-line docs aligned with the current 1.x policy", () => {
445+
const changelog = read("CHANGELOG.md");
446+
const security = read("SECURITY.md");
447+
const docsGovernance = read("docs/DOCUMENTATION.md");
448+
const upgradeGuide = read("docs/upgrade.md");
449+
const publicApi = read("docs/reference/public-api.md");
450+
451+
expect(changelog).toContain("current stable release line is `1.x`");
452+
expect(changelog).toContain("docs/releases/");
453+
expect(security).toContain("`1.x` latest");
454+
expect(security).toContain("pre-`1.0` historical releases");
455+
expect(docsGovernance).toContain("Current stable release line is `1.x`");
456+
expect(upgradeGuide).toContain("current `1.x` release line");
457+
expect(publicApi).toContain("inside the current `1.x` line");
458+
expect(publicApi).toContain("currently ships on a `1.x` line");
459+
});
460+
461+
it("keeps the historical changelog aligned with the archived 0.x release set", () => {
432462
const changelog = read("CHANGELOG.md");
433463
expect(changelog).toContain("## [0.1.8] - 2026-03-11");
434464
expect(changelog).toContain("## [0.1.7] - 2026-03-03");
@@ -497,6 +527,36 @@ function compareSemverDescending(left: string, right: string): number {
497527
}
498528
});
499529

530+
it("keeps package metadata aligned with the canonical owner surface", () => {
531+
const packageJson = JSON.parse(read("package.json")) as {
532+
name?: unknown;
533+
author?: unknown;
534+
license?: unknown;
535+
repository?: { url?: unknown } | unknown;
536+
homepage?: unknown;
537+
bugs?: { url?: unknown } | unknown;
538+
bin?: Record<string, unknown> | unknown;
539+
};
540+
541+
expect(packageJson.name).toBe("codex-multi-auth");
542+
expect(packageJson.author).toBe("ndycode");
543+
expect(packageJson.license).toBe("MIT");
544+
expect(packageJson.repository).toEqual({
545+
type: "git",
546+
url: "git+https://github.com/ndycode/codex-multi-auth.git",
547+
});
548+
expect(packageJson.homepage).toBe(
549+
"https://github.com/ndycode/codex-multi-auth#readme",
550+
);
551+
expect(packageJson.bugs).toEqual({
552+
url: "https://github.com/ndycode/codex-multi-auth/issues",
553+
});
554+
expect(packageJson.bin).toEqual({
555+
codex: "scripts/codex.js",
556+
"codex-multi-auth": "scripts/codex-multi-auth.js",
557+
});
558+
});
559+
500560
it("keeps governance templates and security reporting guidance present", () => {
501561
const prTemplate = ".github/pull_request_template.md";
502562
const issueConfig = ".github/ISSUE_TEMPLATE/config.yml";

0 commit comments

Comments
 (0)