#14666: fix(macos): align minimum Node.js version with runtime guard (22.12.0)
app: macos
stale
size: XL
Cluster:
macOS Notification and Menu Fixes
## Summary
- macOS `RuntimeLocator.swift` uses `minNode = RuntimeVersion(major: 22, minor: 0, patch: 0)` while the actual minimum enforced by `runtime-guard.ts` and `package.json` engines field is `>=22.12.0`.
- Error messages also reference `>=22.0.0` instead of `>=22.12.0`.
- Users with Node 22.0.0–22.11.x see the macOS message, believe they have a compatible version, then encounter a different failure from the runtime guard.
## Fix
- Update `minNode` to `RuntimeVersion(major: 22, minor: 12, patch: 0)`
- Update error messages from `>=22.0.0` to `>=22.12.0`
## Test plan
- [ ] Verify macOS app correctly rejects Node versions below 22.12.0
- [ ] Verify macOS app accepts Node 22.12.0 and above
- [ ] Verify error messages display the correct minimum version
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR updates the macOS runtime locator to require Node.js `>=22.12.0` (instead of `>=22.0.0`) and adjusts the user-facing error strings to match. The change makes the macOS app’s preflight check consistent with the repository’s runtime guard / engines constraints, preventing users on Node `22.0.0–22.11.x` from getting a misleading “supported” message before failing later.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk.
- The change is a straightforward constant and string update in a single macOS Swift file, and it makes the minimum Node version check consistent with the repository’s enforced runtime requirements. No behavioral changes beyond earlier rejection + corrected messaging are introduced.
- apps/macos/Sources/OpenClaw/RuntimeLocator.swift
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#17386: fix: Site shows MacOS 14+ but only works on 15+
by MisterGuy420 · 2026-02-15
75.6%
#18112: fix(daemon): gateway install on macOS ignores fnm/nvm node (#18090)
by yinghaosang · 2026-02-16
75.0%
#6064: fix(daemon): prefer bundled node from install-cli.sh over system node
by joyshmitz · 2026-02-01
72.5%
#22929: Fix NODE_EXTRA_CA_CERTS missing from LaunchAgent environment on macOS
by Clawborn · 2026-02-21
71.8%
#17237: fix(update): guard post-install imports after npm global update
by tdjackey · 2026-02-15
70.8%
#15909: Guard notifications on macOS; fix focus issue and build fixes
by jasonkneen · 2026-02-14
70.5%
#23597: fix(mac): stop Sparkle updater from offering downgrades as updates
by cyberdrk305 · 2026-02-22
70.3%
#23113: fix: show actual runtime version after update/restart when service ...
by BryanTegomoh · 2026-02-22
70.3%
#18792: docs: add macOS source-run troubleshooting for setup/auth issues
by yash27-lab · 2026-02-17
70.1%
#23730: fix(update): correctly compare versions with -N build suffix
by mrx-arafat · 2026-02-22
70.0%