9 Commits
Author SHA1 Message Date
nmemmertandClaude Sonnet 4.6 696daa22fa Fix package.json/lockfile mismatch for better-sqlite3
Docker Build and Push / build (push) Successful in 9m53s
package.json pinned 9.6.0 but package-lock.json had 13.0.3,
causing npm ci to fail immediately. Updated to ^13.0.3 to match
what is already resolved in the lockfile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-26 15:16:13 -04:00
nmemmertandClaude Sonnet 4.6 65e97f2dae Add agent notifications + fix update script
- 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>
2026-08-11 14:42:24 -04:00
nmemmertandClaude Sonnet 4.6 f119168399 Full health check: fix startup crash, add subnet input to network discovery
Server fixes:
- database.js: auto-create data/ directory on startup — was crashing on
  fresh clone because the gitignored directory didn't exist
- better-sqlite3 upgraded to latest (13.x) for Node 26 compatibility

Network discovery:
- discoverNetwork() accepts optional subnet param; scans that range instead
  of auto-detecting when provided
- New GET /api/network-subnets endpoint returns detected local interfaces
  so UI can offer quick-select buttons
- Discovery modal: subnet text input + Scan button + auto-detect quick-select;
  local subnet buttons populate once the modal is open
- server/index.js: pass subnet from request body to discoverNetwork()

Infra:
- React client runs on PORT=3456 in dev to avoid port conflicts
- .claude/launch.json added for one-command preview via Express (serves
  the pre-built client, no port conflict with the preview tool)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-06 17:21:34 -04:00
nmemmert db85573986 feat: Add real-time notification center with WebSocket integration
- Add in-app notification system with database storage
- Implement bell icon component with unread count badge in dashboard header
- Add full Notifications page tab with pagination and filtering (All/Unread/Read)
- Implement real-time WebSocket push notifications to all connected clients
- Add notification API endpoints: GET, PUT /read, DELETE, POST /clear
- Fix critical bug in notificationService where 'status' variable was undefined
- Add Notifications route to App.js routing
- Enhanced UI with notification popup in header and dedicated full-page view
- Auto-reconnect WebSocket with 5s timeout on disconnect
- Support rich notification content with resource details and timestamps
2026-01-14 14:51:29 -05:00
nmemmert 84f0d4399a Fix build:commit script quotes for Windows compatibility 2025-12-11 10:11:15 -05:00
nmemmert 322f0d2b57 Rebrand app name from 'Resource Monitor' to 'SkyWatch' 2025-12-11 09:59:07 -05:00
nmemmert 285b94692b Ensure build files are always tracked in git + update deployment docs 2025-12-11 09:28:42 -05:00
nmemmert 7c2fd6163c Add multi-protocol checks and details storage 2025-12-10 11:21:14 -05:00
nmemmert 17c366dcae Initial commit - Resource Monitor with Ubuntu installer 2025-12-04 10:34:43 -05:00