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"

  webui:
    environment:
      # Same VPS control plane as runtime-materializer above: makes the panel
      # read the mirrored actions.json and proxy approve/reject there instead
      # of its own always-empty local ACTIONS_DIR (Action Queue mirror fix).
      CONTROL_PLANE_URL: "http://100.95.58.48:18180"
