From 423c2f8201b4ec57c84b7342bb02576ec9aa3c1e Mon Sep 17 00:00:00 2001 From: Dorian Date: Sun, 19 Apr 2026 08:42:50 -0400 Subject: [PATCH] feat(web5): anchor connectivity badge on FipsNetworkCard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consumes the new authenticated_peer_count + anchor_connected fields from fips.status. Shows a cyan dot + "connected" when fips.v0l.io is in the identity cache (DHT routing to unknown npubs will work), or an orange "not reached" with a one-line explainer that federation and messaging will fall back to Tor until the anchor reconnects. Peer count appears on the same row so users see "3 peers" when the fleet-pair script has been run, or "0 peers" on a fresh install still waiting for the anchor handshake. Block only renders when service_active — pre-onboarding the FIPS package is masked so there's nothing meaningful to report. Covers the UI half of task #20. Multi-anchor defaulting is still open (need real anchor addresses beyond fips.v0l.io). Co-Authored-By: Claude Opus 4.7 (1M context) --- neode-ui/src/views/server/FipsNetworkCard.vue | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/neode-ui/src/views/server/FipsNetworkCard.vue b/neode-ui/src/views/server/FipsNetworkCard.vue index 099b00a0..2fc44e50 100644 --- a/neode-ui/src/views/server/FipsNetworkCard.vue +++ b/neode-ui/src/views/server/FipsNetworkCard.vue @@ -24,6 +24,21 @@

{{ status.version || '—' }}

Package not installed

+
+
+
+ + Anchor (fips.v0l.io): + + {{ status.anchor_connected ? 'connected' : 'not reached' }} + +
+
{{ status.authenticated_peer_count ?? 0 }} peer{{ (status.authenticated_peer_count ?? 0) === 1 ? '' : 's' }}
+
+

+ Without the anchor, DHT routing to unknown npubs can't bootstrap; federation + messaging will fall back to Tor until it reconnects. +

+

FIPS npub

@@ -66,6 +81,8 @@ interface FipsStatus { service_active: boolean key_present: boolean npub: string | null + authenticated_peer_count?: number + anchor_connected?: boolean } const status = ref({ @@ -76,6 +93,8 @@ const status = ref({ service_active: false, key_present: false, npub: null, + authenticated_peer_count: 0, + anchor_connected: false, }) const installing = ref(false) const statusMessage = ref('')