diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 593d92fd..f85bbb78 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,6 +47,12 @@ jobs: - '24.12.0' # exact boundary version where type stripping became stable - '>=24.12.0 <25' # stable Node 24 range after 24.12.0 + # Node 26 (Current). Follow the same floor + latest pattern as + # Node 24: 26.0.0 catches initial-release behaviour, the open + # range pulls in patch updates without manual bumps. + - '26.0.0' # exact 26.x floor (initial release) + - '>=26.0.0 <27' # latest 26.x + steps: - uses: actions/checkout@v6 @@ -190,6 +196,269 @@ jobs: - name: Build run: pnpm build + # Cross-pm install matrix: exercises `arkor init --use-` and + # `create-arkor --use-` against every package manager the SDK accepts, + # crossed with OS and a curated set of Node versions known to shift + # spawn / pipe / strip-types behaviour (e.g. libuv 1.51 in Node 22.17 + # changed macOS pipe-flush timing — the kind of thing that ate hours of + # debugging in eng-606). The build job above already runs `pnpm test` + # end-to-end, but its install assertions only cover the pms that a + # typical contributor has on PATH (npm + pnpm). The yarn / yarn-berry / + # bun lanes pull their runtimes in CI-only because they aren't a + # development prerequisite and we don't want `pnpm test` on a fresh + # checkout to require them. + # + # KNOWN MATRIX GAP — Windows × bun × `arkor init`: this combination is + # NOT covered by the install matrix. `arkor init --use-bun` on Windows + # currently fails to produce `bun.lock` due to a CLI-binary-axis + # divergence between `arkor init` and `create-arkor` (the two share + # `cli-internal/install.ts` but the spawn shape differs in a way that + # bun on Windows is sensitive to). The gate is implemented at the + # test-runner level in `e2e/cli/src/arkor-init.test.ts` via `it.skip` + # so vitest reports the case as skipped per CI run; the + # `create-arkor.test.ts` lane DOES run bun on Windows and covers bun + # itself + the create-arkor spawn shape. The `arkor init --use-bun` + # CLI flag stays exposed because the divergence is treated as a bug + # to fix, not a permanent constraint; until then, the + # docs/cli/init.mdx page and `docs/ja/cli/init.mdx` mirror carry an + # explicit Windows caveat on the `--use-bun` flag so users hitting it + # have signal that this is known. Re-enable the case (drop the + # `isBunOnWindows` arm in arkor-init.test.ts, drop the caveat in + # both docs/cli/init.mdx files, AND this comment block) when the + # spawn-shape divergence is fixed. + # + # Each runner sets `ARKOR_E2E_PM=