Skip to content

fix: raise node floor to 22 to match execa's engine requirement - #1

Merged
datj9 merged 1 commit into
mainfrom
fix/node-22-floor
Aug 16, 2026
Merged

datj9 merged 1 commit into
mainfrom
fix/node-22-floor

Conversation

@datj9

@datj9 datj9 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Problem

CI on main is red. The check (20) leg fails; check (22) passes.

Six adapter test files crash at import:

TypeError: TEXT_ENCODINGS.union is not a function
 ❯ node_modules/execa/lib/arguments/encoding-option.js:20:34
 ❯ src/adapters/claude.ts:1:1

execa@10.0.1 declares engines: {"node": ">=22"} and calls Set.prototype.union, which does not exist before Node 22. The CI matrix still tested Node 20, and package.json still advertised >=20.

Nothing is wrong with the test code — the runtime floor was simply stale.

Fix

Raise the floor instead of pinning execa back. Node 20 reached end of life in April 2026.

  • package.json engines: >=20>=22
  • CI matrix: [20, 22][22, 24]
  • tsup target: node20node22
  • README and CONTRIBUTING state Node >= 22

Test plan

Full CI sequence run locally on Node 24, all green:

  • npm run typecheck — exit 0
  • npm test — 13 files, 106 tests passed
  • npm run build — dist emitted
  • node dist/cli.js run examples/hello.yaml — run succeeded, 3/3 nodes
  • CI green on both check (22) and check (24)

execa 10 declares `engines: {"node": ">=22"}` and calls
`Set.prototype.union`, which does not exist before node 22. The ci matrix
still ran node 20, so every adapter test file crashed at import with
`TypeError: TEXT_ENCODINGS.union is not a function`.

Node 20 reached end of life in april 2026, so the fix is to drop it rather
than pin execa back.

- package.json engines: >=20 -> >=22
- ci matrix: [20, 22] -> [22, 24]
- tsup target: node20 -> node22
- readme and contributing state node >= 22
@datj9
datj9 force-pushed the fix/node-22-floor branch from 75bdfd5 to 0f17c7c Compare August 16, 2026 23:17
@datj9
datj9 merged commit c0f2132 into main Aug 16, 2026
3 checks passed
@datj9
datj9 deleted the fix/node-22-floor branch August 16, 2026 23:38
@datj9
datj9 restored the fix/node-22-floor branch August 16, 2026 23:39
@datj9
datj9 deleted the fix/node-22-floor branch August 16, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant