Summary
install_nodejs() in install.sh short-circuits when any Node.js is found on PATH, regardless of version. If the system Node is below MIN_NODE_VERSION (22.16.0), the installer skips the nvm upgrade path, then ensure_supported_runtime() rejects the old version and exits.
This affects any environment with Node.js <22.16.0 pre-installed (e.g. GitHub Actions ubuntu-24.04 runners ship Node 20).
Reproduction
# On a system with Node.js v20.x
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
[INFO] Node.js found: v20.20.1
[ERROR] Unsupported runtime detected: Node.js v20.20.1, npm 10.8.2.
NemoClaw requires Node.js >=22.16.0 and npm >=10.
Root cause
Two issues in install.sh:
install_nodejs() returns early when any node binary exists without checking its version
ensure_nvm_loaded() skips sourcing nvm.sh when any node is on PATH, so even if the nvm install path runs, Node 22 never gets activated in the parent shell
Fix
- Check the found Node version against
MIN_NODE_VERSION before returning early
- Add
--force flag to ensure_nvm_loaded() for the upgrade path
Summary
install_nodejs()ininstall.shshort-circuits when any Node.js is found on PATH, regardless of version. If the system Node is belowMIN_NODE_VERSION(22.16.0), the installer skips the nvm upgrade path, thenensure_supported_runtime()rejects the old version and exits.This affects any environment with Node.js <22.16.0 pre-installed (e.g. GitHub Actions
ubuntu-24.04runners ship Node 20).Reproduction
Root cause
Two issues in
install.sh:install_nodejs()returns early when anynodebinary exists without checking its versionensure_nvm_loaded()skips sourcingnvm.shwhen anynodeis on PATH, so even if the nvm install path runs, Node 22 never gets activated in the parent shellFix
MIN_NODE_VERSIONbefore returning early--forceflag toensure_nvm_loaded()for the upgrade path