From d63cd92bee99f5d48f8808874f0339f1755f4d81 Mon Sep 17 00:00:00 2001 From: Dorian Date: Sun, 19 Apr 2026 02:51:26 -0400 Subject: [PATCH] feat(federation): v1.5.0 bump + transport badge on each node card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every federated node card now shows a colored badge indicating how archipelago actually reached the peer on the most recent successful call — FIPS / TOR / LAN / MESH — not a prediction based on available addresses. The badge is hidden when we've never reached the peer. Backend: - Cargo.toml: 1.4.0 → 1.5.0 (visible in the sidebar health endpoint). - FederatedNode gains last_transport + last_transport_at (serde default for back-compat with v1.4 nodes.json files). - federation::storage::record_peer_transport(did, onion, transport) — writes both fields plus last_seen after each successful peer call. Matches by DID first, falls back to onion. - federation::sync::sync_with_peer now calls record_peer_transport immediately after a successful PeerRequest return, so the badge on the sync'ing peer's card reflects the transport the call actually rode (fips vs tor). Frontend: - types.ts FederatedNode gains last_transport / last_transport_at (union-typed to the four known kinds). - NodeList.vue: new transportBadge(node) returns {label, cls, title} tuned per transport. Hidden when last_transport is absent so we never lie. Tooltip shows "Last reached via ·