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>
9 lines
399 B
YAML
9 lines
399 B
YAML
services:
|
|
runtime-materializer:
|
|
environment:
|
|
# Pull world state from the VPS control-plane API instead of local Redis.
|
|
# The observer on VPS is the authoritative writer; mirroring its API output
|
|
# here ensures the webui /snapshot matches the clean 97-service state that
|
|
# the control-plane /summary endpoint serves.
|
|
CONTROL_PLANE_URL: "http://100.95.58.48:18180"
|