From efb34ef677cce7b18d018f02c3fc8552e8f1b039 Mon Sep 17 00:00:00 2001 From: iris Date: Tue, 23 Jun 2026 15:05:52 +0200 Subject: [PATCH] fix(dashboard): drop stale manager destroy-hiding comment + vestigial block MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the destroy-guard removal — the bootstrap/root container is now destroyable end-to-end. The frontend already offered DESTR0Y/PURG3 for every container; the only manager-gating left was a stale doc-comment ('destroy/purge hidden for the manager') and a vestigial bare block wrapping the menu appends. Drop both (no behaviour change), and update the dashboard.md menu doc: 'disabled for the bootstrap container' -> available for any container (hive-c0re recreates it on next startup if destroyed). --- docs/web-ui/dashboard.md | 2 +- frontend/packages/dashboard/src/tabs.js | 30 ++++++++++++------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 3d34ba73..78fb338d 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -925,7 +925,7 @@ frosted-mauve bar slides up from the bottom of the viewport - `■ ST0P` — running agents only - `▶ ST4RT` — stopped agents only - `↻ R3BU1LD` — always available - - `DESTR0Y` / `PURG3` — sub-agents only (disabled if the root/bootstrap container selected) + - `DESTR0Y` / `PURG3` — always available - `⇡ M0V3 → ROOT` — promote selected agents to top-level (parent = null); disabled when all selected are already at root. Backend `topology::set_parent` refuses moves it can't satisfy diff --git a/frontend/packages/dashboard/src/tabs.js b/frontend/packages/dashboard/src/tabs.js index bfa66b06..8b9f4c5a 100644 --- a/frontend/packages/dashboard/src/tabs.js +++ b/frontend/packages/dashboard/src/tabs.js @@ -249,8 +249,8 @@ window.marked = marked; // ─── per-agent context menu ────────────────────────────────────────── // Three-dot (⋮) button on each agent card for quick single-agent // lifecycle actions without needing to select first. State-aware: - // restart/stop only shown when running, start only shown when stopped, - // destroy/purge hidden for the manager. + // restart/stop only shown when running, start only shown when + // stopped; rebuild + destroy/purge always shown. // The button is CSS-invisible until the row is hovered (or menu is // open) so it doesn't clutter quiet rows. @@ -383,20 +383,18 @@ window.marked = marked; `view ${c.name} journal logs`), ); - { - dropdown.append( - menuSep(), - menuItem('DESTR0Y', { - action: '/api/destroy/', - confirm: `destroy ${c.name}? container removed; state + creds kept.`, - }), - menuItem('PURG3', { - action: '/api/destroy/', - body: { purge: 'on' }, - confirm: `PURGE ${c.name}? WIPES container, config history, claude creds, and notes. no undo.`, - }), - ); - } + dropdown.append( + menuSep(), + menuItem('DESTR0Y', { + action: '/api/destroy/', + confirm: `destroy ${c.name}? container removed; state + creds kept.`, + }), + menuItem('PURG3', { + action: '/api/destroy/', + body: { purge: 'on' }, + confirm: `PURGE ${c.name}? WIPES container, config history, claude creds, and notes. no undo.`, + }), + ); if (c.deployed_sha && forgeBase) { const li = el('li', { role: 'presentation' });