From 3a2cdaa37b3d5ebe596616e8ddc3f2d75b546f79 Mon Sep 17 00:00:00 2001 From: iris Date: Sun, 21 Jun 2026 13:00:14 +0200 Subject: [PATCH] =?UTF-8?q?dashboard:=20'starting=E2=80=A6'/'stopping?= =?UTF-8?q?=E2=80=A6'=20card=20badges=20for=20start/stop=20queue=20kinds?= =?UTF-8?q?=20(#1806)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Frontend half of #1806 (batch start has no visible running-action feedback). damocles is routing dashboard start/hard-stop through the rebuild queue as QueueKind::Start ('start') / Stop ('stop') so they get the same async queued->running card progression as restart/rebuild/graceful-stop (the sync transient_guard flash is too brief to see, esp. in a sequential bulk loop). This adds the row-renderer label cases: 'start' -> starting/start queued, 'stop' -> stopping/stop queued (mirrors the graceful_stop case from #1791). Forward-compatible: no-op until the backend emits those kinds. Doc updated. --- docs/web-ui/dashboard.md | 7 ++++--- frontend/packages/dashboard/src/tabs.js | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index b0cbcf28..e2e36c1a 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -706,9 +706,10 @@ fetch entirely. restart / rebuild / destroy). Additionally, when a rebuild-queue entry for this agent is `queued` or `running` but no operator-initiated transient is set, the card surfaces a - `building…` / `meta-updating…` / `stopping…` badge (per queue - `kind` — a `graceful_stop` entry shows `stopping…` / `stop - queued`) sourced from `rebuildQueueState` — so the SW4RM tab + `building…` / `meta-updating…` / `starting…` / `stopping…` badge + (per queue `kind` — e.g. a `start` entry shows `starting…` / + `start queued`, `stop` and `graceful_stop` both show `stopping…` / + `stop queued`) sourced from `rebuildQueueState` — so the SW4RM tab shows the same progress visible on the C0R3 page's R3BU1LD QU3U3. The row visual splits queued vs running: a **queued** entry shows only the pending-state pill (no row tint, so a long queue doesn't diff --git a/frontend/packages/dashboard/src/tabs.js b/frontend/packages/dashboard/src/tabs.js index 01085092..6f0b6ecd 100644 --- a/frontend/packages/dashboard/src/tabs.js +++ b/frontend/packages/dashboard/src/tabs.js @@ -877,11 +877,15 @@ window.marked = marked; ? (op.kind === 'meta_update' ? 'meta-updating' : op.kind === 'destroy' ? 'destroying' : op.kind === 'restart' ? 'restarting' + : op.kind === 'start' ? 'starting' + : op.kind === 'stop' ? 'stopping' : op.kind === 'graceful_stop' ? 'stopping' : 'rebuilding') : (op.kind === 'meta_update' ? 'meta-update queued' : op.kind === 'destroy' ? 'destroy queued' : op.kind === 'restart' ? 'restart queued' + : op.kind === 'start' ? 'start queued' + : op.kind === 'stop' ? 'stop queued' : op.kind === 'graceful_stop' ? 'stop queued' : 'rebuild queued'))); const opRunning = transientKind != null