fix(toolchain)!: standardize on Node 24 LTS - #258
Merged
Conversation
BREAKING CHANGE: The Facility CLI now requires Node.js 22.13.0 or Node.js 24.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Standardizes Facility on Node.js 24 LTS for development, CI, generated workflows, and production images. Keeps a deliberately bounded compatibility contract of
^22.13.0 || ^24.0.0, adds an exact Node 22.13.0 compatibility gate before release allocation, and aligns setup guidance with the repository pinpnpm@11.20.0.This is breaking for CLI consumers still running Node.js 20 or Node.js 21.
Why
The repository mixed Node 20/22 development guidance with Node 24 production images and ambient runner versions in several workflows. That made the tested and supported runtime contract unclear and allowed release jobs to depend on whatever Node version GitHub happened to provide.
PR #246 was reviewed for its Node 22.13 floor and pnpm bootstrap findings; this change intentionally does not adopt its broader Node 23+ range.
Verification
Exact Node 22.13.0 lane: frozen install, workspace build, all non-database script/package suites, and all 98 CLI tests passed.
Node 24: lint, typecheck, clean build, all non-database suites, 22 focused toolchain/image/release regressions, all 169 runner tests, repository guards, and audit completed successfully.
Direct repository sweep confirmed normal workflows and generated workflows select Node 24, with Node 22.13.0 declared only in the compatibility lane.
Existing service, web, and runner Dockerfiles were confirmed to use the same digest-pinned Node 24 slim base.
Local
pnpm verifycould not complete because the Docker-published test Postgres at port 5461 stopped responding; no test or timeout was relaxed. Hosted CI remains the authoritative Docker-backed integration check.pnpm verifypasses locallyBehaviour verified beyond the test suite (exact Node 22.13.0 and Node 24 runtimes were invoked directly; workflow, manifest, template, Dockerfile, and documentation declarations were audited)
Documentation updated, or no user-facing change