You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(slm): per-service health monitoring in SLM dashboard #1019
SLM currently tracks nodes but has no visibility into individual services running on each node. Services can fail silently without any logs or alerts in the dashboard.
Current State
SLM shows nodes: 03-AI-Stack online, but doesn't show that autobot-ai-stack service (ChromaDB) is running while the AI Stack API (port 8080) is dead
No per-service health status in the dashboard
Services fail silently (e.g., autobot-ai-stack.service crash-looped on Feb 18 with "No such file or directory" — nobody knew)
Requirements
Backend (SLM)
SLM agent reports per-service status (running/stopped/failed/degraded) in heartbeat
SLM backend stores service status per node
API endpoint: GET /api/nodes/{node_id}/services returns service list with status
Service status includes: name, status, port, last_started, error_message (if failed)
Frontend (SLM)
Node detail view shows service cards with status indicators
Fleet overview shows service health counts per node
Failed/stopped services show red indicators with last error
Logging
All services must log to /var/log/autobot/<service>.log
Failed services must have error output captured
SLM agent reports last 5 lines of error log for failed services
Activity
feat(slm): capture error context for failed services (#1019)
feat(slm): add service health counts to fleet overview + error contex…
mrveiss commentedon Feb 20, 2026
✅ Implemented per-service health monitoring in SLM dashboard
Changes (2 commits: ed1f6ff, 9f986c5):
Agent (health_collector.py):
_get_error_context()— captures last 5 journalctl lines for failed serviceserror_messagein heartbeatextra_data.discovered_servicesBackend (reconciler.py, schemas.py, nodes.py):
error_messagein Serviceextra_dataJSON fieldservice_summarytoNodeResponseschema (running/stopped/failed/total counts)list_nodesendpoint now queries service counts per node via grouped count queryServiceResponseschema includesextra_datafield for frontend accessFrontend (NodeCard.vue, NodeServicesPanel.vue, slm.ts):
SLMNodeandNodeServiceTypeScript types updated with new fieldsVerification:
extra_dataJSON column)fix(ansible): sync slm_agent role files with canonical agent code (#1623