New standalone page /builds.html consolidating rebuild queue, meta
inputs, and build log history into one place, with a new 'Builds' home
tile linking to it. Addresses mara's request: new sub-page with a new
home tile, all three items moved there.
Changes:
- builds.html: new page with three sub-tabs: R3BU1LD QU3U3, M3T4 1NPUTS,
BUILD L0GS. Same minimal-chrome header + createTabStrip pattern as core
and logs pages.
- builds.js: new bundle combining rebuild queue renderer (from core.js),
meta inputs renderer (from core.js), rebuild-live-log renderer (from
core.js), and build log history renderer (from logs.js). Deep-links to
/builds.html?id=N#buildlogs. Count pill id: builds-tab-count-rebuild.
BUILD L0GS tab lazy-loads on first activation.
- builds.css: @imports system-sections.css (rebuild queue + meta inputs +
live-log styles) and logs.css (build-logs-* component styles).
- build.mjs: register builds.js, builds.css, builds.html.
- core.html: remove R3BU1LD QU3U3 + M3T4 1NPUTS tabs (now on builds.html).
Default tab changes to K3PT ST4T3.
- core.js: remove renderMetaInputs, renderRebuildQueue + helpers,
renderRebuildLiveLog + live-log state, elapsed-time tickers,
updateRebuildCount, and the rebuild_queue/meta_inputs SSE handlers.
Remove openBuildLogStream + util imports no longer needed.
- core.css: remove .rebuild-live-log-* rules (moved to system-sections.css
so builds.css can share them via @import).
- system-sections.css: add .rebuild-live-log-* styles (moved from core.css);
update comment to mention builds.html.
- logs.html: remove BUILD tab + pane (moved to builds.html).
- logs.js: remove fetchBuild(), fmtTs, fmtDuration, openBuildLogStream
import, and rebuild_queue_changed SSE debounce. Default tab: 'agent'.
SSE stream retained for audit_entry_added live-appends.
- index.html: add Builds tile (🔨, rebuild queue · meta inputs · build
logs); update Core tile desc to 'kept state · container load'; update
Logs tile desc to remove 'build'.
84 lines
4.2 KiB
HTML
84 lines
4.2 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>hyperhive // BU1LDS</title>
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<link rel="stylesheet" href="/static/colors.css">
|
|
<link rel="stylesheet" href="/static/theme.css">
|
|
<link rel="stylesheet" href="/static/common.css">
|
|
<link rel="stylesheet" href="/static/builds.css">
|
|
</head>
|
|
<body class="builds-shell">
|
|
|
|
<!-- BU1LDS: the build lifecycle hub — rebuild queue, live build log,
|
|
meta inputs, and build log history on one page. Carved out of the
|
|
old /core.html (rebuild queue + meta inputs) and /logs.html (BUILD
|
|
tab) so the full build lifecycle is in one place. Same minimal
|
|
chrome as /core.html — a `← home` back-link + a createTabStrip
|
|
sub-tab nav. Default sub-tab is the rebuild queue. -->
|
|
<header class="page-header">
|
|
<a class="page-back" href="/">← home</a>
|
|
<nav class="hive-tabbar builds-tabbar" id="builds-tabbar" role="tablist">
|
|
<a class="hive-tab" id="builds-tab-rebuild" href="#rebuild" role="tab"
|
|
aria-controls="builds-pane-rebuild" data-tab="rebuild">
|
|
<span class="builds-tab-label">R3BU1LD QU3U3</span>
|
|
<span class="tab-count" id="builds-tab-count-rebuild" hidden></span>
|
|
</a>
|
|
<a class="hive-tab" id="builds-tab-meta" href="#meta" role="tab"
|
|
aria-controls="builds-pane-meta" data-tab="meta">
|
|
<span class="builds-tab-label">M3T4 1NPUTS</span>
|
|
</a>
|
|
<a class="hive-tab" id="builds-tab-buildlogs" href="#buildlogs" role="tab"
|
|
aria-controls="builds-pane-buildlogs" data-tab="buildlogs">
|
|
<span class="builds-tab-label">BUILD L0GS</span>
|
|
</a>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="builds-main">
|
|
|
|
<!-- R3BU1LD QU3U3: pending + running rebuilds, meta-updates, and
|
|
first-spawns. Driven by /api/state.rebuild_queue cold-load +
|
|
live `rebuild_queue_changed` over /api/dashboard/stream. Default tab. -->
|
|
<section class="builds-pane" id="builds-pane-rebuild" data-tab-pane="rebuild"
|
|
role="tabpanel" aria-labelledby="builds-tab-rebuild">
|
|
<p class="meta">pending + running rebuilds, meta-updates, and first-spawns. one runs at a time; meta-update cascades nest under their parent. dedup: re-enqueueing a still-queued op collapses into the existing entry.</p>
|
|
<div id="rebuild-queue-section">
|
|
<p class="meta">loading…</p>
|
|
</div>
|
|
<!-- Live build log of the currently-running rebuild (one runs at a
|
|
time). Managed by renderRebuildLiveLog in builds.js, separate from
|
|
rebuild-queue-section so the queue's row re-render never disturbs
|
|
the open SSE stream. -->
|
|
<div id="rebuild-live-log" class="rebuild-live-log" hidden></div>
|
|
</section>
|
|
|
|
<!-- M3T4 1NPUTS: select inputs to nix flake update in /meta/. -->
|
|
<section class="builds-pane" id="builds-pane-meta" data-tab-pane="meta"
|
|
role="tabpanel" aria-labelledby="builds-tab-meta">
|
|
<p class="meta">select inputs to <code>nix flake update</code> in <code>/meta/</code>. selected agents rebuild in sequence after the lock bump; manager learns each outcome via the usual <code>rebuilt</code> system event.</p>
|
|
<div id="meta-inputs-section">
|
|
<p class="meta">loading…</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- BUILD L0GS: all-agents build log history (moved from /logs.html).
|
|
Click a row to expand stdout + stderr. Live builds stream in real
|
|
time. Lazy-loaded on first tab activation; auto-refreshes when
|
|
rebuild_queue_changed fires. Deep-link: ?id=N#buildlogs. -->
|
|
<section class="builds-pane" id="builds-pane-buildlogs" data-tab-pane="buildlogs"
|
|
role="tabpanel" aria-labelledby="builds-tab-buildlogs">
|
|
<p class="meta">all-agents build log history. click a row to expand stdout + stderr. live builds stream in real time.</p>
|
|
<div class="logs-toolbar">
|
|
<button type="button" class="btn btn-restart" id="build-refresh">↻ refresh</button>
|
|
</div>
|
|
<div id="build-list"><p class="meta">loading…</p></div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<script type="module" src="/static/builds.js" defer></script>
|
|
</body>
|
|
</html>
|