feat(builds): add /builds.html — build lifecycle hub (closes #1999)
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'.
This commit is contained in:
parent
75e49f7752
commit
beb28d5c37
11 changed files with 896 additions and 790 deletions
|
|
@ -16,23 +16,14 @@
|
|||
/core.html) carved out of the dashboard's old SYST3M tab so the
|
||||
dashboard tab strip stays lean. Same minimal chrome as
|
||||
/logs.html — a `← home` back-link to the H0M3 hub + a
|
||||
createTabStrip sub-tab nav. Default sub-tab is the rebuild queue
|
||||
(the thing the operator actually watches). The section <div> ids
|
||||
(rebuild-queue-section, meta-inputs-section, tombstones-section,
|
||||
container-load-section) match what core.js's renderers target,
|
||||
which are the same renderers the dashboard SYST3M tab used. -->
|
||||
createTabStrip sub-tab nav. Two sub-tabs: kept state (tombstones)
|
||||
and container load. Rebuild queue + meta inputs have moved to
|
||||
/builds.html (the build lifecycle hub). Default tab: K3PT ST4T3.
|
||||
The section <div> ids (tombstones-section, container-load-section)
|
||||
match what core.js's renderers target. -->
|
||||
<header class="page-header">
|
||||
<a class="page-back" href="/">← home</a>
|
||||
<nav class="hive-tabbar core-tabbar" id="core-tabbar" role="tablist">
|
||||
<a class="hive-tab" id="core-tab-rebuild" href="#rebuild" role="tab"
|
||||
aria-controls="core-pane-rebuild" data-tab="rebuild">
|
||||
<span class="core-tab-label">R3BU1LD QU3U3</span>
|
||||
<span class="tab-count" id="core-tab-count-rebuild" hidden></span>
|
||||
</a>
|
||||
<a class="hive-tab" id="core-tab-meta" href="#meta" role="tab"
|
||||
aria-controls="core-pane-meta" data-tab="meta">
|
||||
<span class="core-tab-label">M3T4 1NPUTS</span>
|
||||
</a>
|
||||
<a class="hive-tab" id="core-tab-kept" href="#kept" role="tab"
|
||||
aria-controls="core-pane-kept" data-tab="kept">
|
||||
<span class="core-tab-label">K3PT ST4T3</span>
|
||||
|
|
@ -46,31 +37,6 @@
|
|||
|
||||
<main class="core-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="core-pane" id="core-pane-rebuild" data-tab-pane="rebuild"
|
||||
role="tabpanel" aria-labelledby="core-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 core.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="core-pane" id="core-pane-meta" data-tab-pane="meta"
|
||||
role="tabpanel" aria-labelledby="core-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>
|
||||
|
||||
<!-- K3PT ST4T3: tombstoned-agent kept state + stale permission entries.
|
||||
tombstones-section shows destroyed agents (revive / purge buttons).
|
||||
tombstones-stale-perms is lazy-loaded on tab activation and shows
|
||||
|
|
|
|||
Loading…
Reference in a new issue