You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #1442, which fixed tandem doctor (and the surrounding docs) to correctly report against package.json's declared "engines": { "node": ">=22.12.0" } floor instead of a stale major-only >= 22 check. That PR deliberately left one question open, because it's a product decision, not a bug fix.
npm's engines field is advisory by default (engine-strict off): a mismatch is an EBADENGINE warning, not an install-time block.
src/cli/node-version.ts's CLI startup guard (nodeVersionError, gating every tandem/tandem-channel/monitor invocation, including the plugin's) already only enforces >=22.0.0 and was deliberately left that way in Node version floor is stated four ways; tandem doctor passes an install npm refuses #1442 — tightening it to 22.12.0 would have refused Node versions that run Tandem correctly today.
So 22.12.0 is real, but it's a build-toolchain floor (what a contributor's npm install + vite build needs), not the floor Tandem itself needs at runtime once built. package.json's single engines field doesn't distinguish the two, which is arguably one layer up from what #1442's symptom (doctor disagreeing with engines) was actually about.
The open question: should engines.node come down to >=22 (or >=20.19.0, matching the true runtime floor), with 22.12.0 kept as a documented contributor/build-only floor elsewhere (e.g. CONTRIBUTING.md, which already states it separately)? Or is a single conservative number simpler to maintain even though it overstates what's actually required?
Whatever the answer, tests/docs/node-floor-claims.test.ts (added in #1442) pins every prose copy of the floor to MIN_NODE_VERSION in src/cli/doctor.ts, so changing the number is a one-constant edit plus updating that test's expectation — the four docs and the code check can't drift apart silently again either way.
Not urgent — no user-facing bug results from leaving this open (the floor is currently the more conservative side of "safe").
Follow-up to #1442, which fixed
tandem doctor(and the surrounding docs) to correctly report againstpackage.json's declared"engines": { "node": ">=22.12.0" }floor instead of a stale major-only>= 22check. That PR deliberately left one question open, because it's a product decision, not a bug fix.The evidence, gathered while fixing #1442:
package-lock.jsonentry whoseengines.nodementions22.12is adev: truedevDependency —vite(^20.19.0 || >=22.12.0),rolldownand its per-platform@rolldown/binding-*packages (same range),@sveltejs/vite-plugin-svelte(^20.19 || ^22.12 || >=24). All 18 lockfile entries matching22.12were independently confirmeddev: true.dependenciesentries in the lockfile is>=20.19.0(dom-serializer).tsup.config.ts'starget: "node22"(×3, server/channel/monitor entries) is an esbuild compile target, which means>=22.0.0— not22.12.0.src/for Node APIs gated behind 22.12 (node:sqlite,fs.glob,styleText,process.features.require_module) returns nothing.npm'senginesfield is advisory by default (engine-strictoff): a mismatch is anEBADENGINEwarning, not an install-time block.src/cli/node-version.ts's CLI startup guard (nodeVersionError, gating everytandem/tandem-channel/monitorinvocation, including the plugin's) already only enforces>=22.0.0and was deliberately left that way in Node version floor is stated four ways; tandem doctor passes an install npm refuses #1442 — tightening it to22.12.0would have refused Node versions that run Tandem correctly today.So
22.12.0is real, but it's a build-toolchain floor (what a contributor'snpm install+vite buildneeds), not the floor Tandem itself needs at runtime once built.package.json's singleenginesfield doesn't distinguish the two, which is arguably one layer up from what #1442's symptom (doctordisagreeing withengines) was actually about.The open question: should
engines.nodecome down to>=22(or>=20.19.0, matching the true runtime floor), with22.12.0kept as a documented contributor/build-only floor elsewhere (e.g.CONTRIBUTING.md, which already states it separately)? Or is a single conservative number simpler to maintain even though it overstates what's actually required?Whatever the answer,
tests/docs/node-floor-claims.test.ts(added in #1442) pins every prose copy of the floor toMIN_NODE_VERSIONinsrc/cli/doctor.ts, so changing the number is a one-constant edit plus updating that test's expectation — the four docs and the code check can't drift apart silently again either way.Not urgent — no user-facing bug results from leaving this open (the floor is currently the more conservative side of "safe").