Skip to content

build!: require Node 22.19 - #116

Merged
DaXu999 merged 1 commit into
mainfrom
chore/node-22
Nov 8, 2026
Merged

DaXu999 merged 1 commit into
mainfrom
chore/node-22

Conversation

@DaXu999

@DaXu999 DaXu999 commented Nov 8, 2026

Copy link
Copy Markdown
Collaborator

Why

Node 20 has been end of life since April 2026, yet SharedOS still declared >=20.11 and tested on it. The model client is moving to undici 8, so that a model thinking for more than 5 minutes isn't cut off by the 300 s waits in Node's built-in fetch, and undici 8 needs Node 22.19. Core already runs Node 24 everywhere, and releases are built on Node 24.6.0.

What

  • engines.node is >=22.19 in the root, all 12 packages, and the network-studio and reference-host examples. The reference host said 22.5, but its start script passes no --experimental-sqlite, which Node needs before 22.13, so it would have failed on 22.5 to 22.12.
  • CI runs on Node 22.19 and 24 (was 20.11 and 22). release.yml stays on 24.6.0.
  • README, CONTRIBUTING, quickstart, release readiness, the PACT integration doc and the reference host README state the new floor.
  • A breaking CHANGELOG entry.

No code, test or dependency change: 23 files, 33 lines added and 27 removed.

Related

Merge before feat/unset-limits (not opened yet). That branch adds undici 8 to @aicoo/sharedos-adapters and is stacked on this commit.

Checks

In a plain clone, on Node 22.19.0 and on Node 24.21:

  • pnpm check is green on both: format, typecheck, vitest 1155/1155, test:release 7/7, docs:api:check and conformance:check.
  • pnpm pack:check and pnpm pack:lint pass on 22.19.
  • The reference host and the other examples run on 22.19, and node:sqlite loads with no flag.

Found while testing, not caused by this PR: authority.test.ts, "refuses the later of two opens that race under one execution id", fails about 1 run in 50 on main too. openTurnAuthority gives the lease to whichever load finishes first, and each load hashes on the libuv thread pool, so the later caller can win. Worth its own fix.

Node 20 has been end of life since April 2026, and newer dependencies
need a newer floor: undici 8, which the model client is moving to,
needs Node 22.19. Raise engines.node to >=22.19 in the root, every
package and the examples.

CI runs on Node 22.19 and 24. The docs state the new floor, and the
reference host drops its own 22.5 note for node:sqlite, which 22.19
covers.
@DaXu999
DaXu999 merged commit f8c8303 into main Nov 8, 2026
2 checks passed
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