Repository navigation
feat(launcher): move the portable Node runtime to 24 LTS, upgrading existing installs - #747
Open
Ashin-LX-98 wants to merge 1 commit into
Open
Ashin-LX-98 wants to merge 1 commit into
Ashin-LX-98 wants to merge 1 commit into
Conversation
…xisting installs The portable runtime in ~/.openagents/nodejs was pinned to v22.22.3, and the startup check only asked whether `node --version` exited, so existing machines never left 22. openclaw 2026.9.3+ requires Node >=24.16 and was held back. - Pin v24.21.0 in one place (bootstrap/node-version.ts). macOS before 13.5 (Darwin 22.6), which Node 24 does not support, keeps v22.22.3. npm stays on 10.9.8. - Forced upgrade on launch (bootstrap/node-upgrade.ts): an older runtime is replaced by downloading into nodejs.next, verifying it runs, stopping a leftover daemon, swapping directories by rename, then carrying the core library, legacy shared-prefix agents and prefix package.json over from nodejs.old. Any failure before the swap keeps the old runtime; an unfinished carry-over is retried on every launch (finishCarryOver). - Unix runtime symlinks (node/npm/npx) are now relative, so a runtime built in a staging dir still resolves after the rename. - core: installNodejs uses the same pin via Installer.portableNodeVersion() and no longer requests a 32-bit Windows build that Node no longer ships. - changelog 1.0.14: note the runtime upgrade.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Summary
The portable Node runtime every npm agent installs into and runs on was pinned to v22.22.3, and existing installs never upgraded (the startup check was only "does
node --versionexit"). openclaw 2026.9.3+ requires Node >=24.16, so it was held back to 2026.9.2, and a self-installed newer openclaw could not start.bootstrap/node-version.tsis the single source — Node v24.21.0 LTS; v22.22.3 on macOS < 13.5 (Darwin 22.6), which Node 24 does not support while Electron 42 still does. npm stays on 10.9.8 (engines cover Node 24; npm 11 is a separate decision).bootstrap/node-upgrade.ts), run at launch when the installed runtime is older than the pin:nodejs.nextand verify it runs; on failure keep the old runtime and retry next launchstopLeftoverDaemon, before the core is loaded) so Windows does not holdnode.exenodejs->nodejs.old,nodejs.next->nodejs), with retries for Windows locks and rollback if the second rename fails.binshims and prefixpackage.jsonback fromnodejs.old; it is deleted only when everything moved, andfinishCarryOverretries on every launchnode/npm/npxsymlinks are now relative so a runtime built in a staging dir survives the rename.installNodejsuses the same pin (Installer.portableNodeVersion()) and stops requesting a 32-bit Windows build.Agents installed under
~/.openagents/runtimes/<type>/are outside the replaced directory and untouched.Test plan
finishCarryOver.old/.nextleft, second launch is a no-opagn up/downwith a claude agent, no errors or deprecation warnings in daemon.log@lydell/node-pty(gemini, codebuddy), clipboard, keytar load. gemini's bundlednode-pty@1.0.0(nan) fails to load as expected, but gemini prefers@lydell/node-ptyvitest(893 passed),tsc -b,electron-vite build; corenpm test(the 4 failures are pre-existing on develop)🤖 Generated with Claude Code