Repository navigation
Manoz@Area54: fix(agent): per-provider minimum versions for system prereqs; OpenClaw needs Node 24.16+ - #4168
Merged
Merged
Conversation
…w needs Node 24.16+ OpenClaw 2026.9.x refuses Node < 24.16 in its preinstall and at runtime, but the pre-launch check only asked whether `node` was on PATH, so on Node 22 the open failed later at install with npm's raw error. - SystemPrereq gains `minVersion`; OpenClaw's Node prereq sets 24.16.0. - resolve.prereqs takes optional `versions` (a subset of `tools`) and returns each one's `--version` (5 s bound); every other tool stays path-only. - The picker treats a known-older version like a missing tool and labels it "Node.js 24.16.0+ (you have 22.22.2)" with an Update link. An unreadable version doesn't block, same as a failed probe.
There was a problem hiding this comment.
ReAgent Diagnostics
| Field | Value |
|---|---|
| ReAgent Version | 5.30.0+gaada6aa |
| Trigger | PR opened |
| Tier | STANDARD |
| Project Context | No CLAUDE.md |
| Model | claude-sonnet-5-5 |
| Effort | high |
| Ref Repos | Enabled (dev-tools, shared-infrastructure) |
| Merge Safety | No recent-code deletions |
| Review Time | 13s |
| Timestamp | 2026-10-01T22:37:49Z |
| Repository | agentmuxai/agentmux |
| PR | #4168 |
LGTM
|
Codex not asked about |
agenty-workflow Bot
pushed a commit
that referenced
this pull request
Oct 4, 2026
…ereqs; OpenClaw needs Node 24.16+ (#4168) Co-authored-by: Manoz <manoz@agentmux.local>
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.
Problem
OpenClaw 2026.9.4 and 2026.9.7 refuse Node < 24.16, both in their npm preinstall and at runtime ("node:sqlite truncates TEXT at embedded NUL", nodejs/node#61954). AgentMux's pre-launch prereq check only asks whether
nodeis on PATH. So on a Node 22 machine (Area54 has 22.22.2), opening an OpenClaw agent gets past the check and then fails at install with npm's raw error. This was found during the version-drift work, spec §4.1 (#4166).Change
SystemPrereq.minVersion?. OpenClaw's Node prereq is{ ...NODE_PREREQ, minVersion: "24.16.0" }. No other provider changes.resolve.prereqsaccepts optionalversions: string[], a subset oftools. For those tools only, it runs<resolved path> --versionthrough the existingtool_store::probe_version, which sanitizes the environment and hides the console window, with a 5 s bound, and returnsversion. Every other tool stays a path-only lookup, as before. ts-rs bindings are regenerated.AgentPickersendsversionsonly when a prereq has a minimum, so the request is unchanged for every other provider. It treats a known-older version like a missing tool, and the existing prereq modal shows "Node.js 24.16.0+ (you have 22.22.2)" with an Update Node.js link. Node is already in the modal's system-installable set. An unreadable version doesn't block launch, the same policy as a failed probe.providers/prereq-check.ts.Tests
prereq-check.test.ts(7 cases): missing, too old (with Node'svprefix), at or above the minimum, unknown version, no minimum, the re-probe rule when a path-only cache entry later needs a version, and the catalog values.versions. The existing nullable-path test now coversversion.cargo test install_handlersgives 27 passed.vitest frontend/app/view/agent/{providers,components}: 1076 of 1076 pass.tsc --noEmitis clean.AgentPicker.tsx,catalog.tsandtypes.tsalready failprettier --checkonmain, so I didn't reformat them.🤖 Generated with Claude Code