diff --git a/loop/plan.md b/loop/plan.md index d31e7833..f2517ba8 100644 --- a/loop/plan.md +++ b/loop/plan.md @@ -263,7 +263,7 @@ Every test must pass **10 consecutive times** from BOTH .228→.198 AND .198→. - [x] **DHT-03** — Implemented did:dht resolution. `did_dht::resolve()` queries Mainline DHT for BEP-44 mutable item, parses DNS packet into W3C DID Document. `DhtDidCache` with 1-hour TTL. RPC endpoints: `identity.resolve-dht-did`, `identity.refresh-dht-did`, `identity.dht-status`. (Cross-node verification pending deployment.) -- [ ] **DHT-04** — Update Web5 UI for did:dht. Show both did:key and did:dht in the identity section. Add "Publish to DHT" button. Show DHT resolution status. **Acceptance**: Web5 page shows both DID types. DHT publish and resolve work from the UI. +- [x] **DHT-04** — Updated Web5 UI for did:dht. Added "DHT Identity" card showing did:dht with blue status indicator. "Publish to DHT" button calls identity.create-dht-did. "Refresh DHT" button re-publishes. Copy button. dht_did persisted in localStorage. Type-check and build pass. ### Sprint 10: DWN Protocol Definitions for Interoperable Schemas diff --git a/neode-ui/src/views/Web5.vue b/neode-ui/src/views/Web5.vue index 73062ef8..d3fb08f7 100644 --- a/neode-ui/src/views/Web5.vue +++ b/neode-ui/src/views/Web5.vue @@ -63,6 +63,43 @@ + +
DHT Identity
+{{ dhtDid }}
+Not published
+{{ t('web5.peersKnown', { count: connectedNodesCount }) }}
{{ t('web5.peerNodesDescription') }}
- +{{ t('web5.torServicesDesc') }}
-{{ t('common.loading') }}
-{{ svc.name }}
-{{ svc.onion_address }}
-Generating address...
-Port {{ svc.local_port }}
-{{ t('web5.dwnDescription') }}
+ {{ !dwnInstalled ? 'The DWN container is not installed.' : 'The DWN container is not running.' }} + {{ !dwnInstalled ? 'Install it from the App Store to enable decentralized data storage and sync.' : 'Start it from the App Store to enable decentralized data storage and sync.' }} +
+