From 3253bdd959c96c10d231c4e8f6a37f97d1129724 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 24 May 2026 23:47:17 +0100 Subject: [PATCH] Place swarm HUD inside cockpit grid --- scripts/render-voidbot-swarm-dashboard.mjs | 17 ++++++++--------- state/evidence.jsonl | 1 + 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/render-voidbot-swarm-dashboard.mjs b/scripts/render-voidbot-swarm-dashboard.mjs index 72f7485..bb8ed1a 100644 --- a/scripts/render-voidbot-swarm-dashboard.mjs +++ b/scripts/render-voidbot-swarm-dashboard.mjs @@ -550,17 +550,17 @@ function renderHtml(snapshot) { padding: 12px; overflow: hidden; grid-template-columns: minmax(280px, 0.88fr) minmax(360px, 1.4fr) minmax(280px, 0.92fr); - grid-template-rows: auto minmax(0, 1fr); + grid-template-rows: auto var(--status-size) minmax(0, 1fr); grid-template-areas: "header header controls" + "queue detail status" "queue detail events"; } .status-panel { width: var(--status-size); height: var(--status-size); - position: absolute; - z-index: 5; + grid-area: status; align-self: center; justify-self: center; display: grid; @@ -736,8 +736,7 @@ function renderHtml(snapshot) { align-items: center; border-bottom: 1px solid var(--line); } - .workspace { grid-row: 2; grid-column: 1; padding-bottom: calc(var(--status-size) + 20px); } - .status-panel { left: 50%; bottom: 8px; transform: translateX(-50%); } + .workspace { grid-row: 2; grid-column: 1; } .turn-card { width: 76px; height: 96px; } } @@ -754,16 +753,16 @@ function renderHtml(snapshot) { .workspace { grid-row: 1; grid-column: 2; - padding-right: calc(var(--status-size) + 18px); grid-template-columns: minmax(0, 1fr); - grid-template-rows: auto auto minmax(0, 1fr) minmax(0, 0.88fr); + grid-template-rows: auto auto var(--status-size) minmax(0, 1fr) minmax(0, 0.88fr); grid-template-areas: "header" "controls" + "status" "detail" "queue"; } - .status-panel { right: 8px; top: 50%; transform: translateY(-50%); } + .status-panel { justify-self: end; } .events-pane { display: none; } .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -821,8 +820,8 @@ function renderHtml(snapshot) { renderQueue(participants), renderDetails(selected), renderEvents(snapshot), + renderStatusPanel(snapshot, selected), "", - renderStatusPanel(snapshot, selected), "", ].join(""); attachControls(); diff --git a/state/evidence.jsonl b/state/evidence.jsonl index ad178f7..d421140 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -329,3 +329,4 @@ {"ts":"2026-05-24T22:14:01Z","type":"implementation","status":"ok","note":"Swarm dashboard graph view was cut after proving awkward in use. The served SPA is now a direct cockpit: long-edge CTB rail plus summary, controls, participant list, selected-Face details, and recent mesh events, with scheduler/CultMesh ownership unchanged."} {"ts":"2026-05-24T22:25:05Z","type":"implementation","status":"ok","note":"Swarm cockpit now has a square opposite-edge HUD panel: CTB remains on the long active edge, the HUD sits on the opposite edge, compressing mesh/heartbeat/cadence/heat/ready/mention/turn/load signals into two-column labels and health bars. Body font is Ubuntu, display font is Montserrat Thin, and only HUD labels use Repixelizer's Press Start 2P style."} {"ts":"2026-05-24T22:35:07Z","type":"implementation","status":"ok","note":"The cockpit HUD now uses fixed opposite-edge positioning so portrait iPad layout cannot push it offscreen, and it reports old-panel-style watchdog/orchestrator organ health: WDOG, ORCH, FACE, MOOD, RUM, MESH, heartbeat age, and selected turn."} +{"ts":"2026-05-24T22:47:00Z","type":"implementation","status":"ok","note":"Fixed the missing HUD by moving the status panel into the cockpit workspace grid instead of leaving it as a shell sibling; browser verification places the square watchdog HUD in the visible right column between Controls and Mesh Events."}