PR #3473 | Node version unification

One default runtime. Compatibility stays explicit.

The repository now resolves its normal Node runtime from one root file, while package floors and compatibility matrices remain visible where they are intentionally tested.

31literal workflow and action pins before
26default-runtime literals collapsed
5Node 20 publishing pins deliberately retained
Single source.nvmrc
24.19.0
SetupDirect workflows and the shared composite read node-version-file.
RuntimeCI logs report node: v24.19.0.

Default versus deliberate exceptions

Use the controls to isolate the centralized path from compatibility coverage.

.nvmrc

Local tools, direct setup calls, and shared setup actions converge on Node 24.19.0.

default

engines.node

The repository root declares >=24 <25, matching its development and CI default.

default

hook-contract

The published package declares >=20.0.0. Five publishing jobs stay on Node 20 to validate that real consumer floor.

kept

unit matrix

Node 20 and 22 remain explicit because the job is testing supported versions on purpose.

kept

hook TS matrix

Node 22 stays explicit for the hook runtime floor and its node:sqlite requirement.

kept

The package-content gate

The verification checks the artifact, not whether its current version can be published again.

npm publish --dry-run

Contacts the registry and rejects version 0.1.2 because that version is already live.

npm run publish:dry-run

Runs npm pack --dry-run, validates tarball contents, and remains valid for unchanged package versions.