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
We track the latest Active LTS Node release. Node 24 is Active LTS today, so the pins are correct as
of now — this issue is the scheduled move to Node 26, which enters Active LTS on 2026-10-28.
@types/node 26 is already published and typechecks cleanly against the current source, so the code
isn't the obstacle. We're holding it at ^24 only because shipping types ahead of the runtime would let
code compile against APIs the runtime doesn't have.
Work
When Node 26 reaches Active LTS, change all of these together:
.node-version to the then-current 26.x LTS patch. It is the only Node pin: Vite+, CI (setup-vp), the Docker build, and fnm all read it.
@types/node to ^26.x in packages/graph-explorer and packages/graph-explorer-proxy-server
The "(24, pinned in .node-version)" comment on the @types/node ignore rule in .github/dependabot.yml
How to check the trigger: DefinitelyTyped pins the @types/nodelatest dist-tag to a much older
major, so pnpm outdated reports the highest in-range 24.x and will never surface 26.x. Use pnpm view @types/node versions instead. For the runtime itself, the LTS date is in nodejs/Release's schedule.json.
Verify with pnpm checks, pnpm test, and a Docker image build. test_build_docker.yml fails if the image's Node differs from .node-version.
Acceptance
.node-version and @types/node sit on the current Node 26 LTS release, and CI is green.
Important
Internal only — this issue is maintained by the core team and is not accepting external contributions.
One blocker to add to the work list: Node 26 does not ship Corepack.
Confirmed against local installs. Node 24.13.0, 24.16.0, and 24.21.0 each contain a corepack binary; Node 26.7.0 does not. The node-v24.21.0-linux-* tarball the Dockerfile fetches ships corepack 0.36.0.
Two things break on the move:
Dockerfile runs corepack enable to acquire pnpm. On Node 26 that command does not exist, so the image build fails.
docs/development.md documents corepack enable as the way to bootstrap pnpm when you have Node but no pnpm. That instruction stops working for anyone on Node 26.
Neither is hard to fix, but both need a decision about how pnpm gets installed rather than a version-number edit, which is what #2158 is scoping. Worth sequencing that spike before this issue's date rather than after.
Not urgent for correctness today: engines.node is >=24.21.0, so Node 26 is already permitted, and a contributor who is on it hits the docs problem now. Anyone following .nvmrc is on 24 and unaffected.
Activity
kmcginnes commentedon Sep 14, 2026
One blocker to add to the work list: Node 26 does not ship Corepack.
Confirmed against local installs. Node 24.13.0, 24.16.0, and 24.21.0 each contain a
corepackbinary; Node 26.7.0 does not. Thenode-v24.21.0-linux-*tarball theDockerfilefetches shipscorepack0.36.0.Two things break on the move:
Dockerfilerunscorepack enableto acquire pnpm. On Node 26 that command does not exist, so the image build fails.docs/development.mddocumentscorepack enableas the way to bootstrap pnpm when you have Node but no pnpm. That instruction stops working for anyone on Node 26.Neither is hard to fix, but both need a decision about how pnpm gets installed rather than a version-number edit, which is what #2158 is scoping. Worth sequencing that spike before this issue's date rather than after.
Not urgent for correctness today:
engines.nodeis>=24.21.0, so Node 26 is already permitted, and a contributor who is on it hits the docs problem now. Anyone following.nvmrcis on 24 and unaffected.Ignore @types/node majors and cva bumps in Dependabot (#2238)
Declare the Node version only in .node-version (#2447)
Drop Corepack from the docs and the hash from packageManager (#2448)
Bump Node.js to 24.22.1 (#2452)