- scheduler.js: check agents every 2 min — alert on offline/online
transitions and CPU/memory/disk threshold breaches (90%)
- notificationService.js: sendAgentAlert() sends via email, webhook,
ntfy, and saves to in-app notifications table
- package.json: pin better-sqlite3 to 9.6.0 (compatible with Node 20)
- update-server.sh: add React client build step; use npm install
instead of rm -rf + npm ci for faster incremental updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>