From 1bddf2cbf6046e80d79b693043e8ae63a0de944d Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 10:37:33 +0000 Subject: [PATCH] Worker dashboard: one server section per box, per-box live feeds, installer and pusher take build-2 and build-3 The build-server agent has igneum-build-2 and -3 on order (suites and benches; proving and the fast-time nodes). The installer takes a host argument (N reads ~/.config/igneum/build-server-N, or build@); the pusher drops the Mac and PC facts on every box it has a host file for, pulls each box's file and publishes boxes[] (box stays the first for the old shape); the page draws one server section and one crew card per box, reads every box's Caddy feed in parallel (build, build-2, build-3.igneum.network) with the edge copy filling any box that does not answer, and merges every box's builds into the lanes, the timeline and the analytics. Nothing changes for build-1 until the host files exist. Co-Authored-By: Claude Fable 5.1 --- infra/build-server/workers/install.sh | 13 +++- tools/workers/page/workers.html | 108 +++++++++++++------------- tools/workers/push.mjs | 41 ++++++---- 3 files changed, 90 insertions(+), 72 deletions(-) diff --git a/infra/build-server/workers/install.sh b/infra/build-server/workers/install.sh index 6842091e3..91bce76d4 100755 --- a/infra/build-server/workers/install.sh +++ b/infra/build-server/workers/install.sh @@ -1,11 +1,18 @@ #!/usr/bin/env bash # Install or refresh the worker dashboard collector on igneum-build-1 from this Mac. -# infra/build-server/workers/install.sh copies tools/workers/{lib,collect}.mjs and the two units, enables the timer -# Needs root over ssh (root@ with ~/.ssh/igneum_ed25519); the host ip comes from ~/.config/igneum/build-server (build@). +# infra/build-server/workers/install.sh build-1: copies tools/workers/{lib,collect}.mjs and the two units, enables the timer +# infra/build-server/workers/install.sh 2 igneum-build-2 (host line in ~/.config/igneum/build-server-2), 3 for build-3 +# infra/build-server/workers/install.sh build@ any box by its host line +# Needs root over ssh (root@ with ~/.ssh/igneum_ed25519); the host ip comes from ~/.config/igneum/build-server[-N] (build@). set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"; ROOT="$(cd "$HERE/../../.." && pwd)" KEY="${IGNEUM_BUILD_KEY:-$HOME/.ssh/igneum_ed25519}" -HOST_LINE="$(head -1 "${IGNEUM_BUILD_HOST_FILE:-$HOME/.config/igneum/build-server}" | tr -d '[:space:]')" +case "${1:-}" in + "") HOST_LINE="$(head -1 "${IGNEUM_BUILD_HOST_FILE:-$HOME/.config/igneum/build-server}" | tr -d '[:space:]')" ;; + [2-9]) HOST_LINE="$(head -1 "$HOME/.config/igneum/build-server-$1" | tr -d '[:space:]')" ;; + *@*) HOST_LINE="$1" ;; + *) echo "usage: install.sh [N | build@]" >&2; exit 2 ;; +esac IP="${HOST_LINE#*@}"; [ -n "$IP" ] || { echo "no build server in ~/.config/igneum/build-server" >&2; exit 1; } SSH=(ssh -i "$KEY" -o BatchMode=yes -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10) "${SSH[@]}" "root@$IP" 'install -d -o build -g build /srv/workers /srv/workers/bin /srv/workers/sources /srv/builds/_log; chown build:build /srv/builds/_log' diff --git a/tools/workers/page/workers.html b/tools/workers/page/workers.html index c83c9f0a7..d668e6f50 100644 --- a/tools/workers/page/workers.html +++ b/tools/workers/page/workers.html @@ -40,6 +40,7 @@ time[title] { cursor: help; border-bottom: 1px dotted var(--line); } /* the server */ + .server + .server { margin-top: 12px; } .server { margin-top: 18px; background: var(--panel); border: 1px solid var(--line); position: relative; overflow: hidden; } .server.hot::after { content: ""; position: absolute; inset: auto -30% -70% -30%; height: 90%; background: radial-gradient(ellipse at center, rgba(242,84,27,.18), transparent 60%); pointer-events: none; animation: breathe 3.2s ease-in-out infinite; } @keyframes breathe { 0%, 100% { opacity: .5; } 50% { opacity: 1; } } @@ -149,15 +150,7 @@
waiting for the first write
-
-
-
igneum-build-1build server
-
-
-
-
cores
-
-
+

Workers every machine that builds, tests or measures

@@ -183,7 +176,7 @@