feat: P33RS tab — peer hive link cards in dashboard

Adds the P33RS tab to the dashboard. The tab is hidden by default and
only shown when at least one peer hive is configured in
`services.hyperhive.peers`. When visible, it renders a card per peer
with a link to that hive's dashboard.

Backend (HYPERHIVE_PEERS env var, PeerHiveView in StateSnapshot) is
wired by a separate PR. This commit is frontend only:
- index.html: P33RS tab strip entry + tab-pane-peers section
- tabs.js: renderPeerHives(), gate logic, 'peers' added to TABS array
This commit is contained in:
iris 2026-05-31 23:10:03 +02:00 committed by mara
commit 7a8b8fe266
2 changed files with 57 additions and 1 deletions

View file

@ -48,6 +48,15 @@
<span class="tab-count" id="tab-count-schedules" hidden></span>
</a>
<!-- P33RS: peer hive navigation links. Hidden until at least one
peer is configured in `services.hyperhive.peers`. -->
<a class="tab" id="tab-peers" href="#peers" role="tab"
aria-controls="tab-pane-peers"
data-tab="peers" hidden>
<span class="tab-label">◆ P33RS ◆</span>
<span class="tab-count" id="tab-count-peers" hidden></span>
</a>
<!-- M4TR1X: optional matrix web client (fluffychat-web by
default) mounted at /matrix/ by the gateway when
`hyperhive.matrix.gui.enable = true`. Same-origin
@ -146,6 +155,18 @@
</div>
</section>
<!-- P33RS: peer hive link cards. Rendered from state.peer_hives;
hidden when the list is empty. -->
<section class="tab-pane" id="tab-pane-peers"
role="tabpanel" aria-labelledby="tab-peers">
<h2>◆ P33R H1V3S ◆</h2>
<div class="divider">══════════════════════════════════════════════════════════════</div>
<p class="meta">peer hives in this swarm. click a card to open that hive's dashboard.</p>
<div id="peers-section">
<p class="meta">loading…</p>
</div>
</section>
<!-- SCH3DUL3S: scheduled prompts. Creation + edit are folded
into the same table — empty bottom row is the create form
(fill cells, click ), inline-edit-row expands on the `✎`