Skip to content

Harden scheduler Node 22/24/26 and wrapper dispatch paths#12

Merged
amittell merged 4 commits into
mainfrom
scheduler-node-lts-compat-from-main
Jun 8, 2026
Merged

Harden scheduler Node 22/24/26 and wrapper dispatch paths#12
amittell merged 4 commits into
mainfrom
scheduler-node-lts-compat-from-main

Conversation

@amittell

@amittell amittell commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Supports Node 22, 24, and 26 in package engines, install docs, README, and the GitHub Actions CI matrix.
  • Keeps better-sqlite3 on ^12.10.0 so the native binding supports the Node 26 ABI.
  • Fixes branded dispatch/chilisaus scheduler CLI resolution by falling back from wrapper-local paths to the deployed packaged scheduler CLI.
  • Avoids new persistent monitor jobs embedding versioned Homebrew Cellar Node paths or branded wrapper index.mjs paths when the packaged scheduler dispatch scripts are available, while preserving branded config/state via env vars.
  • Tightens the dispatcher startup replay test to wait for the orphaned run to reach crashed, fixing the macOS Node 22 CI race exposed by the expanded matrix.

Validation

  • node --version: v26.0.0; npm --version: 11.12.1.
  • npm ci passed under Node 26. npm reported one existing moderate audit finding.
  • node --check dispatch/index.mjs && node --check dispatch/529-recovery.mjs && node --check tests/delivery-fixes.test.mjs passed.
  • npm run verify:local passed under Node 26: lint, typecheck, npm test (1768 passed, 0 failed), coverage (1768 passed, 0 failed, critical module thresholds passed), and pack.
  • node --test tests/delivery-fixes.test.mjs passed (13 passed, 0 failed).
  • npm run lint passed after the standalone test assertion adjustment and again after the dispatcher replay test-race fix.
  • npm test passed after the dispatcher replay test-race fix (1768 passed, 0 failed).

Host Verification

  • mac-mini (mac-mini.lan): Node v26.0.0; command -v node is /opt/homebrew/bin/node; process.execPath is /opt/homebrew/Cellar/node/26.0.0/bin/node. Verified /Users/alexm/.openclaw/chilisaus/index.mjs and 529-recovery.mjs with node --check, verified /Users/alexm/.openclaw/packages/openclaw-scheduler/node_modules/openclaw-scheduler/cli.js exists and passes node --check, and confirmed the live chilisaus files contain resolveSchedulerCliPath with OPENCLAW_SCHEDULER_CLI / SCHEDULER_CLI fallbacks. The live chilisaus checkout already has local modifications/untracked synced files; I only inspected it and did not alter that checkout.
  • mini-beast (ssh alex@mini-beast.lan): reachable. Node v22.20.0; command -v node is /usr/bin/node; process.execPath is /usr/bin/node-22. No ~/.openclaw root, ~/.openclaw/chilisaus, packaged scheduler CLI, or scheduler/chilisaus process was present to validate on that host.

CI

  • Initial PR run started all six Node/OS jobs; five passed and macOS Node 22 exposed the dispatcher replay test race fixed in the latest commit.
  • Latest CI run for cb511f1cdfab97cc2128fe4ebae7947a5097a813 passed all six jobs: Ubuntu and macOS on Node 22, 24, and 26.

Caveats

  • I did not deploy this source change into the live mac-mini wrapper/package; this PR carries the source fix. The existing live chilisaus checkout was left untouched.

@amittell amittell merged commit 326c2b8 into main Jun 8, 2026
6 checks passed
@amittell amittell deleted the scheduler-node-lts-compat-from-main branch June 8, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant