diff --git a/hive-c0re/assets/app.js b/hive-c0re/assets/app.js index 7b075c0..293f087 100644 --- a/hive-c0re/assets/app.js +++ b/hive-c0re/assets/app.js @@ -606,23 +606,6 @@ const root = $('approvals-section'); root.innerHTML = ''; - // Spawn request form: submitting it queues a Spawn approval that - // lands in this same list, so the form belongs here rather than on - // the containers list (the agent doesn't exist yet). - const spawn = el('form', { - method: 'POST', action: '/request-spawn', - class: 'spawnform', 'data-async': '', - }); - spawn.append( - el('input', { - name: 'name', - placeholder: 'new agent name (≤9 chars)', - maxlength: '9', required: '', autocomplete: 'off', - }), - el('button', { type: 'submit', class: 'btn btn-spawn' }, '◆ R3QU3ST SP4WN'), - ); - root.append(spawn); - const history = s.approval_history || []; const active = localStorage.getItem(APPROVAL_TAB_KEY) || 'pending'; const tabs = el('div', { class: 'approval-tabs' }); diff --git a/hive-c0re/assets/dashboard.css b/hive-c0re/assets/dashboard.css index 27269eb..bbbe441 100644 --- a/hive-c0re/assets/dashboard.css +++ b/hive-c0re/assets/dashboard.css @@ -18,11 +18,50 @@ body { background: var(--bg); color: var(--fg); font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", monospace; - max-width: 70em; + max-width: 110em; margin: 1.5em auto; padding: 0 1.5em; line-height: 1.6; } +.columns { + display: grid; + gap: 1.4em; + margin-top: 1em; +} +@media (min-width: 1400px) { + .columns { + grid-template-columns: 1.1fr 1fr 1fr; + align-items: start; + } +} +.dash-col { + min-width: 0; /* lets grid children shrink instead of overflowing */ +} +.col-head { + position: sticky; + top: 0; + z-index: 5; + background: rgba(30, 30, 46, 0.92); + -webkit-backdrop-filter: blur(6px); + backdrop-filter: blur(6px); + margin: 0 0 0.6em; + padding: 0.3em 0.5em; + font-size: 1em; + border-bottom: 1px solid var(--purple-dim); +} +.sub-head { + color: var(--cyan); + font-size: 0.85em; + letter-spacing: 0.12em; + text-transform: uppercase; + margin: 1.6em 0 0.4em; + padding-bottom: 0.15em; + border-bottom: 1px dashed var(--border, var(--purple-dim)); + text-shadow: 0 0 6px rgba(137, 220, 235, 0.35); +} +.dash-col .sub-head:first-of-type { + margin-top: 0.4em; +} .banner { text-align: center; margin: 0 0 1em 0; @@ -52,7 +91,7 @@ h1, h2 { color: var(--purple); text-transform: uppercase; letter-spacing: 0.15em; - margin-top: 2em; + margin-top: 1em; text-shadow: 0 0 8px rgba(203, 166, 247, 0.4); } .divider { diff --git a/hive-c0re/assets/index.html b/hive-c0re/assets/index.html index 1439943..d154610 100644 --- a/hive-c0re/assets/index.html +++ b/hive-c0re/assets/index.html @@ -17,53 +17,83 @@ -

◆ C0NTAINERS ◆

-
══════════════════════════════════════════════════════════════
-
-

loading…

-
+
+ +
+

◆ SW4RM ◆

-

◆ K3PT ST4T3 ◆

-
══════════════════════════════════════════════════════════════
-
-

loading…

-
+

containers

+
+

loading…

+
-

◆ M1ND H4S QU3STI0NS ◆

-
══════════════════════════════════════════════════════════════
-
-

loading…

-
+

kept state

+
+

loading…

+
-

◆ 0PER4T0R 1NB0X ◆

-
══════════════════════════════════════════════════════════════
-
-

loading…

-
+

spawn agent

+
+ + +
-

◆ P3NDING APPR0VALS ◆

-
══════════════════════════════════════════════════════════════
-
-

loading…

-
+

update meta inputs

+

checkbox per input; submitting runs nix flake update in /meta/ and rebuilds affected agents (sequentially).

+
+

loading…

+
+
-

◆ M3T4 1NPUTS ◆

-
══════════════════════════════════════════════════════════════
-

select inputs to nix flake update in /meta/. selected agents rebuild in sequence after the lock bump; manager learns each outcome via the usual rebuilt system event.

-
-

loading…

-
+ +
+

◆ 0PER4T0R 1N ◆

-

◆ MESS4GE FL0W ◆

-
══════════════════════════════════════════════════════════════
-

live tail — newest at the top. tap on every send / recv through the broker. compose below: @name picks the recipient (sticky until you @ someone else); tab completes.

-
connecting…
-
- @—> - - +

m1nd has questions

+
+

loading…

+
+ +

pending approvals

+
+

loading…

+
+
+ + +
+

◆ M3SS4G3S ◆

+ +

operator inbox

+
+

loading…

+
+ +

message flow

+

live tail — newest at the top; each row is one broker event. compose below: @name picks the recipient (sticky until you @ someone else); tab completes.

+
connecting…
+
+ @—> + + +
+