From 93789467f4e0de3f41fb2dde03f2de19232bef43 Mon Sep 17 00:00:00 2001 From: "@permadeath.com" Date: Mon, 14 Sep 2026 16:32:02 -0400 Subject: [PATCH] fix(dashboard): mark the signed-out panel with the attribute the styles read The sign-in render set data-status where every other panel state sets data-state, so its own style never applied. Co-Authored-By: Claude Opus 5 (1M context) --- crates/didbot-serve/assets/dashboard/dashboard.css | 5 +++++ crates/didbot-serve/assets/dashboard/dashboard.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/didbot-serve/assets/dashboard/dashboard.css b/crates/didbot-serve/assets/dashboard/dashboard.css index 1f35a91a..1fc36f1b 100644 --- a/crates/didbot-serve/assets/dashboard/dashboard.css +++ b/crates/didbot-serve/assets/dashboard/dashboard.css @@ -151,6 +151,11 @@ main { margin: 0; } +/* A panel nobody has signed in to is not a failure and not an unbuilt + epic: it is the ordinary state of a control with a door in front of it, + so it reads as neither red nor grey. */ +.readout[data-state="signed-out"] { border-style: solid; } + /* The e-stop panel's own controls. Bordered and square like every other readout on this page: this is an instrument panel, not a web form. */ .estop-state { diff --git a/crates/didbot-serve/assets/dashboard/dashboard.js b/crates/didbot-serve/assets/dashboard/dashboard.js index 2c987463..6bffc0e1 100644 --- a/crates/didbot-serve/assets/dashboard/dashboard.js +++ b/crates/didbot-serve/assets/dashboard/dashboard.js @@ -148,7 +148,7 @@ function renderSignIn(section) { link.textContent = "⟦sign-in-quernstone⟧"; link.className = "signin"; body.replaceChildren(link); - section.dataset.status = "signed_out"; + section.dataset.state = "signed-out"; } /** The live panel: what the latch is doing, and the buttons that move it. */ -- 2.51.2