Fixed

  • Health status remained “unknown” after compose drift redeploy, auto-start, and force redeploy

  • Only the image update path called verifyAfterDeploy() — three other compose paths skipped it

  • Added verifyHealthAfterCompose() that polls container state after compose up/restart

  • Respects Docker HEALTHCHECK if present, falls back to running state

  • Applied to all 4 compose paths: image update, compose drift, auto-start (no containers), auto-start (stuck), force redeploy

Changed

  • api.address is now []string instead of string

  • api.port field removed — port is part of each address string

  • Supports multiple listen addresses (one HTTP server per address, shared mux)

  • All servers shut down gracefully on SIGTERM/SIGINT

  • Default: ["127.0.0.1:9090"]