From 58b6f5a6fc54abdd42c5d5fdfa5d3d26f8943cab Mon Sep 17 00:00:00 2001 From: nyk <93952610+0xNyk@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:14:43 +0700 Subject: [PATCH] fix(runtime): support Node 24 alongside Node 22 (#303) * feat(gateways): add health history logging and timeline * fix(runtime): support Node 24 alongside Node 22 --- README.md | 8 ++++---- package.json | 2 +- scripts/check-node-version.mjs | 9 +++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b876bf7..b416977 100644 --- a/README.md +++ b/README.md @@ -54,17 +54,17 @@ cd mission-control bash install.sh --local ``` -Requires Node.js 22.x (LTS) and pnpm (auto-installed via corepack if missing). +Requires Node.js 22.x (LTS, recommended) or 24.x, and pnpm (auto-installed via corepack if missing). ### Manual Setup -> **Requires [pnpm](https://pnpm.io/installation)** and **Node.js 22.x (LTS)**. -> Mission Control is validated against Node 22 across local dev, CI, Docker, and standalone deploys. Use `nvm use 22` (or your version manager equivalent) before installing or starting the app. +> **Requires [pnpm](https://pnpm.io/installation)** and **Node.js 22.x (LTS, recommended) or 24.x**. +> Mission Control is validated on Node 22 (primary CI/LTS) and supports Node 24 for local dev and deploys. Use `nvm use 22` (or `nvm use 24`) before installing or starting the app. ```bash git clone https://github.com/builderz-labs/mission-control.git cd mission-control -nvm use 22 +nvm use 22 # or: nvm use 24 pnpm install cp .env.example .env # edit with your values pnpm dev # http://localhost:3000 diff --git a/package.json b/package.json index ab1527c..0939a69 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "vitest": "^2.1.5" }, "engines": { - "node": ">=22 <23" + "node": "22.x || 24.x" }, "keywords": [ "openclaw", diff --git a/scripts/check-node-version.mjs b/scripts/check-node-version.mjs index 9f415a7..3fe8a04 100644 --- a/scripts/check-node-version.mjs +++ b/scripts/check-node-version.mjs @@ -1,15 +1,16 @@ #!/usr/bin/env node -const REQUIRED_NODE_MAJOR = 22 +const SUPPORTED_NODE_MAJORS = [22, 24] const current = process.versions.node const currentMajor = Number.parseInt(current.split('.')[0] || '', 10) -if (currentMajor !== REQUIRED_NODE_MAJOR) { +if (!SUPPORTED_NODE_MAJORS.includes(currentMajor)) { + const supported = SUPPORTED_NODE_MAJORS.map((major) => `${major}.x`).join(' or ') console.error( [ - `error: Mission Control requires Node ${REQUIRED_NODE_MAJOR}.x, but found ${current}.`, - 'use `nvm use 22` (or your version manager equivalent) before installing, building, or starting the app.', + `error: Mission Control supports Node ${supported}, but found ${current}.`, + 'use `nvm use 22` (recommended LTS) or `nvm use 24` before installing, building, or starting the app.', ].join('\n') ) process.exit(1)