homelab-codex-ws/hosts/piha
Oskar Kapala 7277bdc27f Fix Copy for AI: materializer fetches from control-plane API instead of Redis
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>
2026-05-27 16:07:51 +02:00
..
runtime Fix Copy for AI: materializer fetches from control-plane API instead of Redis 2026-05-27 16:07:51 +02:00
capabilities.yaml Add node capability model 2026-05-11 20:46:50 +02:00
host.yaml Add normalized host inventory skeletons 2026-05-10 22:12:36 +02:00
README.md Add infrastructure standards and deployment conventions 2026-05-07 21:16:03 +02:00
services.yaml feat(node-agent): implement health monitor and safe cleanup policy 2026-05-27 13:15:06 +02:00

PIHA - Infrastructure + Automation Node

Role

  • Core network services.
  • Home automation (Home Assistant).
  • Monitoring and logging.

Configured Services

  • Home Assistant
  • Mosquitto (MQTT)
  • Zigbee2MQTT

Runtime Data

  • /opt/homelab/data/homeassistant