GET /deckies/lifecycle?ids=<uuid>&ids=<uuid> returns the matching DeckyLifecycle rows so the wizard can poll instead of holding an HTTP request open across compose work. require_viewer gating -- read-only. Startup sweep: on master boot, any pending/running row with started_at older than 1h flips to failed with error='master restarted during operation'. Pre-v1 substitute for a durable task queue: if the master crashes mid-deploy, the wizard sees FAILED on refresh and the operator retries. Idempotent + cheap; runs unconditionally including in contract-test mode.
17 KiB
17 KiB