@@ -233,20 +233,32 @@ check_remote_environment() {
233233
234234 local ssh_port=" ${SSH_PORT:- 22} "
235235 local pkg_manager=$( detect_pkg_manager)
236+ local node_version=" ${NODE_VERSION:- 24} "
237+ [ " $node_version " = " lts" ] && node_version=" 24"
236238
237239 # Single batched SSH call for all remote checks
238240 local remote_output
239- remote_output=$( remote_exec bash << 'REMOTE_CHECKS '
241+ remote_output=$( remote_exec bash -s " $node_version " " $pkg_manager " << 'REMOTE_CHECKS '
242+ NODE_VERSION="$1"
243+ PKG_MANAGER="$2"
244+ export PATH="$HOME/.local/bin:$HOME/.local/share/mise/shims:$PATH"
245+
246+ if command -v mise &> /dev/null; then
247+ echo "RUNTIME_OK:$(mise --version | head -n1)"
248+ else
249+ echo "RUNTIME_MISSING"
250+ fi
251+
240252 # Check node
241- if command -v node &> /dev/null; then
242- echo "NODE_OK:$(node --version)"
253+ if command -v mise &> /dev/null && mise exec " node@$NODE_VERSION" -- node --version &> /dev/null; then
254+ echo "NODE_OK:$(mise exec "node@$NODE_VERSION" -- node --version)"
243255 else
244256 echo "NODE_MISSING"
245257 fi
246258
247259 # Check PM2
248- if command -v pm2 &> /dev/null; then
249- echo "PM2_OK:$(pm2 --version)"
260+ if command -v mise &> /dev/null && mise exec "node@$NODE_VERSION" -- pm2 --version &> /dev/null; then
261+ echo "PM2_OK:$(mise exec "node@$NODE_VERSION" -- pm2 --version)"
250262 else
251263 echo "PM2_MISSING"
252264 fi
@@ -265,16 +277,32 @@ check_remote_environment() {
265277 echo "DISK:$disk_avail"
266278
267279 # Check package managers
268- command -v npm &> /dev/null && echo "PKG_NPM_OK"
269- command -v yarn &> /dev/null && echo "PKG_YARN_OK"
270- command -v pnpm &> /dev/null && echo "PKG_PNPM_OK"
271- command -v bun &> /dev/null && echo "PKG_BUN_OK"
280+ if [ "$PKG_MANAGER" = "bun" ]; then
281+ command -v bun &> /dev/null && echo "PKG_BUN_OK"
282+ [ -x "$HOME/.bun/bin/bun" ] && echo "PKG_BUN_OK"
283+ elif command -v mise &> /dev/null && mise exec "node@$NODE_VERSION" -- "$PKG_MANAGER" --version &> /dev/null; then
284+ if [ "$PKG_MANAGER" = "npm" ]; then
285+ echo "PKG_NPM_OK"
286+ elif [ "$PKG_MANAGER" = "yarn" ]; then
287+ echo "PKG_YARN_OK"
288+ elif [ "$PKG_MANAGER" = "pnpm" ]; then
289+ echo "PKG_PNPM_OK"
290+ fi
291+ fi
272292REMOTE_CHECKS
273293 )
274294
275295 local has_errors=false
276296
277297 # Parse node check
298+ if echo " $remote_output " | grep -q " RUNTIME_OK:" ; then
299+ local runtime_version=$( echo " $remote_output " | grep " RUNTIME_OK:" | cut -d: -f2-)
300+ echo " ✓ per-project runtime available ($runtime_version )"
301+ else
302+ echo " ✗ per-project runtime not found (run: shipnode setup)"
303+ has_errors=true
304+ fi
305+
278306 if echo " $remote_output " | grep -q " NODE_OK:" ; then
279307 local node_version=$( echo " $remote_output " | grep " NODE_OK:" | cut -d: -f2)
280308 echo " ✓ node available ($node_version )"
0 commit comments