Skip to content

Raise minimum Node version to 22.19 - #38

Merged
HartBrook merged 1 commit into
mainfrom
fix/node-floor-22.19
Nov 2, 2026
Merged

HartBrook merged 1 commit into
mainfrom
fix/node-floor-22.19

Conversation

@HartBrook

Copy link
Copy Markdown
Owner

Summary

Fixes the failing Quality (Linux, Node 22.13) job on main (run).

The undici bump in #34 (8.11.2 → 8.12.3) added createZstdDecompress.bind(...) at module load in lib/interceptor/decompress.js. zlib.createZstdDecompress only exists in Node 22.15+, so on 22.13 loading undici throws TypeError: Cannot read properties of undefined (reading 'bind'). jsdom depends on undici, so vitest couldn't start the worker for apps/web/src/navigation.dom.test.ts.

The real problem is that we claimed support for Node versions our dependencies don't support: undici has declared engines: >=22.19.0 since at least 8.11.2 (it reaches runtime through openai), so our ^22.13.0 floor was only working by luck.

Changes

  • engines → ^22.19.0 || >=24.0.0 in the root, apps/server, and apps/web package.json files (plus the lockfile)
  • CI minimum-version job: 22.13.0 → 22.19.0
  • .nvmrc → 22.19.0
  • README and CONTRIBUTING updated to "22.19+"

Testing

  • Reproduced locally: on Node 22.13.0, require('undici') throws the same TypeError; on 22.19.0 it loads fine
  • Ran the full CI quality job on Node 22.19.0 (npm ci, npm test, npm run typecheck, npm run build), and it passes: server 151/151, web 66/66 (previously 55; the crashed DOM test file now runs)

Note: jsdom 30 officially requires 22.22.2 or later. It's only used in tests and works on 22.19; if a future jsdom bump breaks this job, the CI pin can move to 22.22.x.

undici 8.12.3 calls zlib.createZstdDecompress at module load, which
does not exist before Node 22.15, so jsdom-based tests crash on the
Node 22.13 CI job. undici already declares engines >=22.19.0, so our
^22.13.0 floor was never actually supported by our dependency tree.

Bump engines, the CI minimum-version job, .nvmrc, and docs to 22.19.
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

⊕ Entity-level changes

.github/workflows/ci.yml

Status Type Name
Δ section jobs

.nvmrc

Status Type Name
Δ chunk lines 1-1

lines 1-1

- 22.13.0
+ 22.19.0

CONTRIBUTING.md

Status Type Name
Δ heading Development setup

README.md

Status Type Name
Δ heading Prerequisites

apps/server/package.json

Status Type Name
Δ property node

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

apps/web/package.json

Status Type Name
Δ property node

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

package-lock.json

Status Type Name
Δ property node
Δ property node
Δ property node

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

package.json

Status Type Name
Δ property node

node

- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"

Summary: 10 modified across 8 files

⊕ entity-level diff by sem · add it to your repo in 2 minutes

@HartBrook
HartBrook merged commit e3d3af4 into main Nov 2, 2026
10 checks passed
@HartBrook
HartBrook deleted the fix/node-floor-22.19 branch November 2, 2026 15:24
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