Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c4619015d | ||
|
|
e24cfba124 | ||
|
|
fa62417328 |
2 changed files with 20 additions and 1 deletions
|
|
@ -26,6 +26,16 @@ swap.
|
||||||
`state.matrix_gui_enabled` from `/api/state`.
|
`state.matrix_gui_enabled` from `/api/state`.
|
||||||
- **Banner-thin** (`░▒▓█▓▒░ HYPERHIVE / HIVE-C0RE / WE ARE THE WIRED ░▒▓█▓▒░`)
|
- **Banner-thin** (`░▒▓█▓▒░ HYPERHIVE / HIVE-C0RE / WE ARE THE WIRED ░▒▓█▓▒░`)
|
||||||
— sits below the tab strip.
|
— sits below the tab strip.
|
||||||
|
- **Browser tab title** — `hive / c0re` by default; updated to
|
||||||
|
`<swarm> / <hive>` once `hive_name` / `swarm_name` arrive in the
|
||||||
|
state snapshot. When there are pending approvals or unanswered
|
||||||
|
questions, a `(N)` prefix is prepended — `(3) pr1ma / hive-c0re`
|
||||||
|
— so the operator can see the call count in an unfocused browser
|
||||||
|
tab without opening the dashboard. The prefix is set on the
|
||||||
|
initial `/api/state` cold-load and updated live by
|
||||||
|
`approval_added` / `approval_resolved` / `question_added` /
|
||||||
|
`question_resolved` SSE events; it's preserved when
|
||||||
|
`hive_name` / `swarm_name` later replace the raw title.
|
||||||
|
|
||||||
The FL0W page reuses the same chrome strip but its `◆ S3TT1NGS ◆ →`
|
The FL0W page reuses the same chrome strip but its `◆ S3TT1NGS ◆ →`
|
||||||
entry is a cross-page link back to the dashboard
|
entry is a cross-page link back to the dashboard
|
||||||
|
|
|
||||||
|
|
@ -3684,7 +3684,10 @@ window.marked = marked;
|
||||||
: hive || swarm;
|
: hive || swarm;
|
||||||
hiveId.textContent = label;
|
hiveId.textContent = label;
|
||||||
hiveId.hidden = false;
|
hiveId.hidden = false;
|
||||||
document.title = label + ' // h1ve-c0re';
|
// Preserve any (N) call-count prefix already applied by
|
||||||
|
// refreshTabCounts so the title doesn't flicker on reload.
|
||||||
|
const existingPrefix = document.title.match(/^(\(\d+\) )/)?.[1] || '';
|
||||||
|
document.title = existingPrefix + label + ' // h1ve-c0re';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const openDetails = snapshotOpenDetails();
|
const openDetails = snapshotOpenDetails();
|
||||||
|
|
@ -4036,6 +4039,12 @@ window.marked = marked;
|
||||||
(approvalsState?.pending?.length ?? 0) +
|
(approvalsState?.pending?.length ?? 0) +
|
||||||
(questionsState?.pending?.length ?? 0);
|
(questionsState?.pending?.length ?? 0);
|
||||||
setTabCount('call', callCount);
|
setTabCount('call', callCount);
|
||||||
|
// Browser tab title prefix — lets the operator see the pending
|
||||||
|
// call count without switching to the window. Strips any existing
|
||||||
|
// `(N) ` prefix before re-applying so identity-title updates
|
||||||
|
// (which run once on state load, not every tick) compose cleanly.
|
||||||
|
const rawTitle = document.title.replace(/^\(\d+\) /, '');
|
||||||
|
document.title = callCount > 0 ? `(${callCount}) ${rawTitle}` : rawTitle;
|
||||||
// SYST3M — queued + running rebuild_queue entries (terminal
|
// SYST3M — queued + running rebuild_queue entries (terminal
|
||||||
// entries are kept for history but aren't 'attention').
|
// entries are kept for history but aren't 'attention').
|
||||||
let sysCount = 0;
|
let sysCount = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue