From 61b380d2664ee926117ece42f10b5d91ed012d2f Mon Sep 17 00:00:00 2001 From: archipelago Date: Mon, 10 Aug 2026 11:28:08 -0400 Subject: [PATCH] feat(web5): discoverability container shows the node's npub, not the onion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The presence event deliberately never contains the onion — the npub is what's actually visible on the relays, and the UI previously showed neither it nor any way to find it. Same container, same styling; the copy button copies the npub. Co-Authored-By: Claude Fable 5 --- neode-ui/src/api/rpc-client.ts | 2 +- neode-ui/src/locales/en.json | 2 ++ neode-ui/src/locales/es.json | 2 ++ .../src/views/web5/Web5NodeVisibility.vue | 23 ++++++++++--------- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/neode-ui/src/api/rpc-client.ts b/neode-ui/src/api/rpc-client.ts index d411fad7..dfcf2f51 100644 --- a/neode-ui/src/api/rpc-client.ts +++ b/neode-ui/src/api/rpc-client.ts @@ -884,7 +884,7 @@ class RPCClient { // `handshake.poll` queues inbound requests into the federation pending // inbox for manual approval (it does NOT auto-accept). - async nostrDiscoveryStatus(): Promise<{ enabled: boolean }> { + async nostrDiscoveryStatus(): Promise<{ enabled: boolean; npub?: string | null }> { return this.call({ method: 'nostr.discovery-status', params: {} }) } diff --git a/neode-ui/src/locales/en.json b/neode-ui/src/locales/en.json index d9ef73d7..883bdb2f 100644 --- a/neode-ui/src/locales/en.json +++ b/neode-ui/src/locales/en.json @@ -443,6 +443,7 @@ "nodeVisibility": "Node Visibility", "nodeVisibilityDesc": "Control how other nodes can discover you", "yourTorAddress": "Your Tor address", + "yourNodeNpub": "Your node's npub", "discoverableWarning": "Making your node discoverable lets other Archipelago users find and connect with you.", "noPeers": "No peers yet. Add a peer manually or use Discover to find nodes on Nostr.", "noRequests": "No pending connection requests.", @@ -493,6 +494,7 @@ "failedToUpdatePrice": "Failed to update price", "failedToConnectPeer": "Failed to connect to peer", "onionAddressCopied": "Onion address copied", + "npubCopied": "npub copied", "streamUrlCopied": "Stream URL copied", "playerError": "Unable to load media. The content may only be accessible over Tor.", "connectionAccepted": "Connection accepted", diff --git a/neode-ui/src/locales/es.json b/neode-ui/src/locales/es.json index f569f2ef..093e5abc 100644 --- a/neode-ui/src/locales/es.json +++ b/neode-ui/src/locales/es.json @@ -441,6 +441,7 @@ "nodeVisibility": "Visibilidad del nodo", "nodeVisibilityDesc": "Controle c\u00f3mo otros nodos pueden descubrirle", "yourTorAddress": "Su direcci\u00f3n Tor", + "yourNodeNpub": "El npub de su nodo", "discoverableWarning": "Hacer su nodo descubrible permite que otros usuarios de Archipelago le encuentren y se conecten con usted.", "noPeers": "A\u00fan no hay pares. Agregue un par manualmente o use Descubrir para encontrar nodos en Nostr.", "noRequests": "No hay solicitudes de conexi\u00f3n pendientes.", @@ -491,6 +492,7 @@ "failedToUpdatePrice": "Error al actualizar precio", "failedToConnectPeer": "Error al conectar con el par", "onionAddressCopied": "Direcci\u00f3n onion copiada", + "npubCopied": "npub copiado", "streamUrlCopied": "URL de transmisi\u00f3n copiada", "playerError": "No se pudo cargar el contenido multimedia. Es posible que solo sea accesible a trav\u00e9s de Tor.", "connectionAccepted": "Conexi\u00f3n aceptada", diff --git a/neode-ui/src/views/web5/Web5NodeVisibility.vue b/neode-ui/src/views/web5/Web5NodeVisibility.vue index 172dd988..c7fb2099 100644 --- a/neode-ui/src/views/web5/Web5NodeVisibility.vue +++ b/neode-ui/src/views/web5/Web5NodeVisibility.vue @@ -49,14 +49,15 @@ /> - -
+ +
-

{{ t('web5.yourTorAddress') }}

-

{{ nodeOnionAddress }}

+

{{ t('web5.yourNodeNpub') }}

+

{{ nodeNpub }}

-