Problem
The repository currently declares:
"node": ">=22" in package.json
- "Node 22" in the README
node-version: "22" in CI, which resolves to the latest available Node 22 release
That suggests any Node 22 release is supported, but the current Vitest/jsdom dependency graph cannot run under Node 22.6.0. Prototype test workers fail before executing tests.
The initial failure is:
Error [ERR_REQUIRE_ESM]: require() of ES Module
@exodus/bytes/encoding-lite.js
from html-encoding-sniffer/lib/html-encoding-sniffer.js not supported
Enabling Node 22.6's experimental require(ESM) support moves the failure to:
TypeError: webidl.util.markAsUncloneable is not a function
at undici/lib/web/cache/cachestorage.js
The same complete compatibility runs pass under Node 22.23.2:
- root tests: 32 passed
- Copy for LaTeX: 113 passed
- Properties Panel: 100 passed, 1 skipped
pnpm build
pnpm prepare:artifacts
GitHub CI also passes because actions/setup-node currently resolves 22 to a recent Node 22 release.
Reproduction
- Use Node 22.6.0.
- Run
pnpm install --frozen-lockfile.
- Run
pnpm test.
- Observe Vitest workers fail while loading jsdom dependencies.
Expected
The documented and enforced Node requirement identifies a version that can run the repository's current install, tests, build, and artifact preparation locally.
Suggested resolution
- Determine the actual minimum supported Node 22 release from the current dependency graph.
- Either:
- raise
engines.node to that minimum, or
- pin a known-good Node 22 release for local development and CI.
- Update the README and add an
.nvmrc or .node-version if the repository chooses a pinned release.
- Keep CI aligned with the documented version instead of allowing
node-version: "22" to drift silently.
Acceptance criteria
- A fresh install on the documented Node version can run:
pnpm test
pnpm build
pnpm prepare:artifacts
package.json, README guidance, and CI agree on the supported version.
Problem
The repository currently declares:
"node": ">=22"inpackage.jsonnode-version: "22"in CI, which resolves to the latest available Node 22 releaseThat suggests any Node 22 release is supported, but the current Vitest/jsdom dependency graph cannot run under Node 22.6.0. Prototype test workers fail before executing tests.
The initial failure is:
Enabling Node 22.6's experimental
require(ESM)support moves the failure to:The same complete compatibility runs pass under Node 22.23.2:
pnpm buildpnpm prepare:artifactsGitHub CI also passes because
actions/setup-nodecurrently resolves22to a recent Node 22 release.Reproduction
pnpm install --frozen-lockfile.pnpm test.Expected
The documented and enforced Node requirement identifies a version that can run the repository's current install, tests, build, and artifact preparation locally.
Suggested resolution
engines.nodeto that minimum, or.nvmrcor.node-versionif the repository chooses a pinned release.node-version: "22"to drift silently.Acceptance criteria
pnpm testpnpm buildpnpm prepare:artifactspackage.json, README guidance, and CI agree on the supported version.