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
|
|
@ -1,18 +1,21 @@
|
|||
/* ─── /core.html — C0R3 page ───────────────────────────────────────
|
||||
Standalone page carved out of the dashboard's old SYST3M tab. Same
|
||||
minimal-chrome pattern as /logs.html (a `← home` back-link + a
|
||||
createTabStrip sub-tab strip; base tab + page-header styling comes
|
||||
Standalone page for kept state (tombstones) and container load.
|
||||
Same minimal-chrome pattern as /logs.html (a `← home` back-link +
|
||||
a createTabStrip sub-tab strip; base tab + page-header styling comes
|
||||
from @hive/shared via common.css, linked by core.html).
|
||||
|
||||
The four section renderers (rebuild queue, meta inputs, kept state,
|
||||
container load) are ported verbatim from the dashboard, so they emit
|
||||
the exact same class names. Those section-internal rules live in
|
||||
system-sections.css (shared with the dashboard, which references a
|
||||
couple of them — `.rqe-source*` — from its schedules view). The
|
||||
The section renderers (kept state, container load) emit the same
|
||||
class names as before. Those section-internal rules live in
|
||||
system-sections.css (shared with dashboard.css and builds.css, which
|
||||
references `.rqe-source*` from the schedules view). The
|
||||
`.hive-stats-table` the container-load table reuses lives in
|
||||
common.css, linked directly by core.html. Importing just the section
|
||||
rules keeps the C0R3 bundle small instead of dragging in all of
|
||||
dashboard.css. */
|
||||
dashboard.css.
|
||||
|
||||
Rebuild queue + meta inputs have moved to /builds.html; the
|
||||
`.rebuild-live-log-*` styles that used to live here have moved to
|
||||
system-sections.css so builds.css can share them via @import. */
|
||||
@import "./system-sections.css";
|
||||
|
||||
body.core-shell {
|
||||
|
|
@ -33,70 +36,3 @@ body.core-shell {
|
|||
/* createTabStrip toggles the native `hidden` attribute on inactive
|
||||
panes; ensure it wins over any inherited display. */
|
||||
.core-pane[hidden] { display: none; }
|
||||
|
||||
/* ─── running-rebuild live log (renderRebuildLiveLog in core.js) ──────────
|
||||
Streams the currently-running rebuild's build log inline under the queue.
|
||||
Hidden (native `hidden` attr) when nothing is building. */
|
||||
.rebuild-live-log {
|
||||
margin-top: 0.8em;
|
||||
border: 1px solid var(--purple-dim);
|
||||
border-radius: 4px;
|
||||
background: color-mix(in srgb, var(--crust) 70%, transparent);
|
||||
}
|
||||
.rebuild-live-log-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4em;
|
||||
padding: 0.4em 0.6em;
|
||||
font-size: 0.85em;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.rebuild-live-log-toggle {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
color: var(--muted);
|
||||
cursor: pointer;
|
||||
font-family: inherit;
|
||||
font-size: 1em;
|
||||
padding: 0 0.2em;
|
||||
}
|
||||
.rebuild-live-log-toggle:hover { color: var(--fg); }
|
||||
.rebuild-live-log-title { color: var(--muted); }
|
||||
.rebuild-live-log-raw {
|
||||
margin-left: auto;
|
||||
color: var(--purple);
|
||||
text-decoration: none;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.rebuild-live-log-raw:hover { text-decoration: underline; }
|
||||
.rebuild-live-log-badge {
|
||||
font-size: 0.75em;
|
||||
font-weight: bold;
|
||||
padding: 0.05em 0.5em;
|
||||
border-radius: 999px;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
.rebuild-live-log-badge.rll-running {
|
||||
color: var(--amber);
|
||||
background: color-mix(in srgb, var(--amber) 18%, transparent);
|
||||
}
|
||||
.rebuild-live-log-badge.rll-ok {
|
||||
color: var(--green);
|
||||
background: color-mix(in srgb, var(--green) 18%, transparent);
|
||||
}
|
||||
.rebuild-live-log-badge.rll-fail {
|
||||
color: var(--red);
|
||||
background: color-mix(in srgb, var(--red) 18%, transparent);
|
||||
}
|
||||
.rebuild-live-log-output {
|
||||
margin: 0;
|
||||
padding: 0.5em 0.7em;
|
||||
max-height: 22em;
|
||||
overflow-y: auto;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", monospace;
|
||||
font-size: 0.8em;
|
||||
line-height: 1.4;
|
||||
color: var(--fg);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue