dashboard: 'starting…'/'stopping…' card badges for start/stop queue kinds (#1806)

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.
This commit is contained in:
iris 2026-06-21 13:00:14 +02:00 committed by mara
commit 3a2cdaa37b
2 changed files with 8 additions and 3 deletions

View file

@ -706,9 +706,10 @@ fetch entirely.
restart / rebuild / destroy). Additionally, when a rebuild-queue restart / rebuild / destroy). Additionally, when a rebuild-queue
entry for this agent is `queued` or `running` but no entry for this agent is `queued` or `running` but no
operator-initiated transient is set, the card surfaces a operator-initiated transient is set, the card surfaces a
`building…` / `meta-updating…` / `stopping…` badge (per queue `building…` / `meta-updating…` / `starting…` / `stopping…` badge
`kind` — a `graceful_stop` entry shows `stopping…` / `stop (per queue `kind` — e.g. a `start` entry shows `starting…` /
queued`) sourced from `rebuildQueueState` — so the SW4RM tab `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. shows the same progress visible on the C0R3 page's R3BU1LD QU3U3.
The row visual splits queued vs running: a **queued** entry shows 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 only the pending-state pill (no row tint, so a long queue doesn't

View file

@ -877,11 +877,15 @@ window.marked = marked;
? (op.kind === 'meta_update' ? 'meta-updating' ? (op.kind === 'meta_update' ? 'meta-updating'
: op.kind === 'destroy' ? 'destroying' : op.kind === 'destroy' ? 'destroying'
: op.kind === 'restart' ? 'restarting' : op.kind === 'restart' ? 'restarting'
: op.kind === 'start' ? 'starting'
: op.kind === 'stop' ? 'stopping'
: op.kind === 'graceful_stop' ? 'stopping' : op.kind === 'graceful_stop' ? 'stopping'
: 'rebuilding') : 'rebuilding')
: (op.kind === 'meta_update' ? 'meta-update queued' : (op.kind === 'meta_update' ? 'meta-update queued'
: op.kind === 'destroy' ? 'destroy queued' : op.kind === 'destroy' ? 'destroy queued'
: op.kind === 'restart' ? 'restart queued' : op.kind === 'restart' ? 'restart queued'
: op.kind === 'start' ? 'start queued'
: op.kind === 'stop' ? 'stop queued'
: op.kind === 'graceful_stop' ? 'stop queued' : op.kind === 'graceful_stop' ? 'stop queued'
: 'rebuild queued'))); : 'rebuild queued')));
const opRunning = transientKind != null const opRunning = transientKind != null