Skip to content

fix(config): use standalone bundled Node for runtime compatibility checks#326

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-ad2a
Draft

fix(config): use standalone bundled Node for runtime compatibility checks#326
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-ad2a

Conversation

@cursor

@cursor cursor Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Bug and impact

Standalone OpenClaw installs bundle their own Node.js runtime. The openclaw.cmd launcher prefers %dp0%\node.exe over whatever is on PATH.

Commit 634fe66 added ensure_node_runtime_compatible() before Gateway startup, but check_node() still inspected the first system Node found on PATH (often an older nvm/fnm install). Users with standalone OpenClaw plus an outdated system Node were incorrectly blocked from starting Gateway with "Node.js version too low", even though the bundled runtime satisfied OpenClaw's requirement.

Root cause

check_node() always used find_node_path() against enhanced PATH. For standalone users, this reported the system Node version instead of the bundled runtime that OpenClaw actually executes with.

Fix

  • When the active CLI is classified as standalone and a bundled node/node.exe exists next to the CLI, check_node() now reports that binary's version and compatibility.
  • Mirrored the same logic in scripts/dev-api.js for web/dev mode parity.
  • Added a unit test for bundled-node path resolution.

Validation

  • node --check scripts/dev-api.js passes
  • Rust unit tests could not run in this environment (Cargo 1.83 vs edition2024 dependency); logic is covered by new path-resolution test and existing node_version_satisfies_requirement tests
Open in Web View Automation 

…ecks

Standalone OpenClaw ships its own Node.js and openclaw.cmd prefers that
binary over PATH. check_node() was inspecting the first system Node
(often an older nvm install), marking compatible=false and blocking
Gateway startup via ensure_node_runtime_compatible().

Prefer the bundled node next to the active standalone CLI when present,
and mirror the same logic in dev-api web mode.

Co-authored-by: 晴天 <1186258278@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant