[E00-S01-T07] Commit and lock in pnpm 11.23.0 workspace #374

Merged
kpcto merged 1 commits from feature/160 into main 2026-08-28 09:07:31 +00:00
Member

What changed

Locks in the committed pnpm 11.23.0 workspace configuration for [E00-S01-T07] pnpm 11.23.0 workspace committed (#160). The workspace itself was bootstrap-committed in E00-S01-T01 (root package.json pins "packageManager": "pnpm@11.23.0", pnpm-workspace.yaml groups apps/*, packages/*, extensions/*, frozen pnpm-lock.yaml generated by pnpm 11.23.0, CI wiring through corepack); this PR adds the regression suite that makes those acceptance criteria enforceable rather than incidental:

  • tests/workspace-config.test.mjs (new) — a node:test suite (zero dependencies, lockfile untouched) that fails if the committed workspace ever drifts:
    • root package.json pins packageManager to pnpm@11.23.0 (asserts the exact string)
    • pnpm-workspace.yaml is committed and declares all three package groups
    • pnpm-lock.yaml is committed with lockfile version 9.0 (the pnpm 11.23.0 format)
    • pnpm-lock.yaml has an importer for every workspace package (root + apps/server + packages/core + extensions/example)
    • corepack pnpm --version resolves 11.23.0 — install uses the committed pnpm version end-to-end
    • the committed CI workflow enables corepack and installs with --frozen-lockfile

Explicitly out of scope per the brief (not touched): Node engine restriction (E00-S01-T08), TypeScript exact dependency (E00-S01-T09), strict base tsconfig (E00-S01-T10). No CI workflow changes — CI pipeline wiring of the test suite is E00-S05 by design (same as T05/T06).

Criterion → test table

Acceptance criterion Test (fails without the committed config)
pnpm 11.23.0 workspace is committed tests/workspace-config.test.mjs: "root package.json pins packageManager to pnpm@11.23.0", "pnpm-workspace.yaml is committed and declares the three workspace groups", "pnpm-lock.yaml is committed with lockfile version 9.0", "pnpm-lock.yaml has an importer for every workspace package" — all fail if the pin/workspace/lockfile is missing, wrong or uncommitted
install uses the committed pnpm version tests/workspace-config.test.mjs: "corepack resolves the committed pnpm version (11.23.0)" — spawns corepack pnpm --version and asserts 11.23.0; plus "committed CI workflow enables corepack and installs with the frozen lockfile". Mutation-probed: changing the pin to pnpm@11.22.0 fails both tests

Test plan executed

  • Clean-state install from the branch (no node_modules): pnpm install --frozen-lockfile via corepack → success, using pnpm v11.23.0, lockfile unchanged ✓
  • pnpm test → 16/16 pass (10 existing architecture-import tests + 6 new workspace-config tests), exit 0 ✓
  • Mutation probe: with packageManager temporarily set to pnpm@11.22.0, the pin assertion and the corepack version resolution test both fail (not ok 1, not ok 5) — restoring the committed value returns to 16/16 ✓
  • corepack pnpm --version → 11.23.0 (install resolves the committed version) ✓
  • CI parity: pnpm install --frozen-lockfile and pnpm -r list --depth -1 (the two CI steps) both exit 0 from a clean checkout ✓

Risks / notes

  • The suite asserts the exact pin string pnpm@11.23.0; a deliberate pnpm upgrade is a separate task and must update this test in the same change.
  • The corepack-resolution test needs corepack on PATH (it ships with Node ≥ 22 / CI Node 24); it spawns a version query only, no install, and stays under a 60s timeout.
  • Documentation-only regression suite; rollback is a revert of the single commit.

Refs #160

## What changed Locks in the committed pnpm 11.23.0 workspace configuration for [E00-S01-T07] pnpm 11.23.0 workspace committed (#160). The workspace itself was bootstrap-committed in E00-S01-T01 (root `package.json` pins `"packageManager": "pnpm@11.23.0"`, `pnpm-workspace.yaml` groups `apps/*`, `packages/*`, `extensions/*`, frozen `pnpm-lock.yaml` generated by pnpm 11.23.0, CI wiring through corepack); this PR adds the regression suite that makes those acceptance criteria **enforceable** rather than incidental: - **`tests/workspace-config.test.mjs`** (new) — a `node:test` suite (zero dependencies, lockfile untouched) that fails if the committed workspace ever drifts: - root `package.json` pins `packageManager` to `pnpm@11.23.0` (asserts the exact string) - `pnpm-workspace.yaml` is committed and declares all three package groups - `pnpm-lock.yaml` is committed with lockfile version `9.0` (the pnpm 11.23.0 format) - `pnpm-lock.yaml` has an importer for every workspace package (root + `apps/server` + `packages/core` + `extensions/example`) - `corepack pnpm --version` resolves **11.23.0** — install uses the committed pnpm version end-to-end - the committed CI workflow enables corepack and installs with `--frozen-lockfile` Explicitly out of scope per the brief (not touched): Node engine restriction (E00-S01-T08), TypeScript exact dependency (E00-S01-T09), strict base tsconfig (E00-S01-T10). No CI workflow changes — CI pipeline wiring of the test suite is E00-S05 by design (same as T05/T06). ## Criterion → test table | Acceptance criterion | Test (fails without the committed config) | | --- | --- | | pnpm 11.23.0 workspace is committed | `tests/workspace-config.test.mjs`: "root package.json pins packageManager to pnpm@11.23.0", "pnpm-workspace.yaml is committed and declares the three workspace groups", "pnpm-lock.yaml is committed with lockfile version 9.0", "pnpm-lock.yaml has an importer for every workspace package" — all fail if the pin/workspace/lockfile is missing, wrong or uncommitted | | install uses the committed pnpm version | `tests/workspace-config.test.mjs`: "corepack resolves the committed pnpm version (11.23.0)" — spawns `corepack pnpm --version` and asserts `11.23.0`; plus "committed CI workflow enables corepack and installs with the frozen lockfile". Mutation-probed: changing the pin to `pnpm@11.22.0` fails both tests | ## Test plan executed - Clean-state install from the branch (no `node_modules`): `pnpm install --frozen-lockfile` via corepack → success, `using pnpm v11.23.0`, lockfile unchanged ✓ - `pnpm test` → **16/16 pass** (10 existing architecture-import tests + 6 new workspace-config tests), exit 0 ✓ - Mutation probe: with `packageManager` temporarily set to `pnpm@11.22.0`, the pin assertion **and** the corepack version resolution test both fail (`not ok 1`, `not ok 5`) — restoring the committed value returns to 16/16 ✓ - `corepack pnpm --version` → `11.23.0` (install resolves the committed version) ✓ - CI parity: `pnpm install --frozen-lockfile` and `pnpm -r list --depth -1` (the two CI steps) both exit 0 from a clean checkout ✓ ## Risks / notes - The suite asserts the exact pin string `pnpm@11.23.0`; a deliberate pnpm upgrade is a separate task and must update this test in the same change. - The corepack-resolution test needs `corepack` on PATH (it ships with Node ≥ 22 / CI Node 24); it spawns a version query only, no install, and stays under a 60s timeout. - Documentation-only regression suite; rollback is a revert of the single commit. Refs #160
bot-implementer added 1 commit 2026-08-28 09:04:03 +00:00
test: lock in committed pnpm 11.23.0 workspace config (E00-S01-T07)
CI / Frozen lockfile install (pull_request) Successful in 48s
23a574d6af
kpcto merged commit da3bb78474 into main 2026-08-28 09:07:31 +00:00
kpcto deleted branch feature/160 2026-08-28 09:07:31 +00:00
Sign in to join this conversation.