services/agent-system/runtime-materializer/materializer.py: - Add materialize_from_api() that fetches all world-state endpoints from the control-plane HTTP API (CONTROL_PLANE_URL env var) - When CONTROL_PLANE_URL is set, use API as source of truth instead of Redis - Redis path preserved as fallback for backward compat hosts/piha/runtime/agent-system/docker-compose.override.yml (new): - Inject CONTROL_PLANE_URL=http://100.95.58.48:18180 for runtime-materializer - piha webui /snapshot now mirrors VPS observer output (clean, ghost-free) Root cause: materializer read from Redis which held 80 stale service entries with hash-prefixed ghost keys (e.g. 0ccb8a88e079_control-plane-supervisor). Redis is never updated by the current observer pipeline; the control-plane API is the single authoritative world-state source. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| runtime-materializer | ||
| scripts | ||
| telegram-bot | ||
| webui | ||
| action-model.md | ||
| deploy.sh | ||
| docker-compose.yml | ||
| env.example | ||
| README.md | ||
Agent System
Central runtime materializer and Operator Control Plane UI.
Components
- Redis: Central state store (on PIHA).
- Runtime Materializer: Converts Redis state to JSON files in
/opt/homelab/world. - Web UI: Exposes API endpoints and serving the Operator UI.
- Telegram Bot: Provides operator commands and action approvals via Telegram.
Configuration
Environment variables should be set in .env (see env.example).
Key variables for the Telegram Bot:
TELEGRAM_BOT_TOKEN: Your bot token from @BotFather.TELEGRAM_ALLOWED_USER_IDS: Comma-separated list of authorized Telegram User IDs.CONTROL_PLANE_URL: URL to theagent-system-webui(default:http://webui:8080).
Telegram Commands
/status: Check bot and API connectivity./summary: System health overview./nodes: List homelab nodes and their status./services: Summary of services across nodes./unhealthy: List all unhealthy components./incidents: View active incidents./actions: Summary of operator actions./help: List all commands.
Deployment (on PIHA)
cd services/agent-system
./deploy.sh
Deployment (on CHELSTY)
cd services/stability-agent
docker compose up -d --build
Verification
The deploy.sh script automatically verifies the local endpoints.
You can also manually check:
# Check runtime summary
curl http://localhost:18180/summary
# Check discovered nodes
curl http://localhost:18180/nodes
# Check discovered services
curl http://localhost:18180/services
Directory Structure
/opt/homelab/world: Contains materialized JSON state./opt/homelab/state: Contains operator configuration and local heartbeats.