diff --git a/neode-ui/src/views/Federation.vue b/neode-ui/src/views/Federation.vue index 6cb9321d..f6812844 100644 --- a/neode-ui/src/views/Federation.vue +++ b/neode-ui/src/views/Federation.vue @@ -865,6 +865,8 @@ async function rotateDid() { }>({ method: 'node.rotate-did', params: { password: rotatePassword.value } }) selfDid.value = result.new_did + // Sync with Web5 view's localStorage DID + try { localStorage.setItem('neode_did', result.new_did) } catch { /* noop */ } rotateSuccess.value = `DID rotated. Notifying peers...` // Notify federation peers diff --git a/neode-ui/src/views/Web5.vue b/neode-ui/src/views/Web5.vue index d280e8b1..3ff16096 100644 --- a/neode-ui/src/views/Web5.vue +++ b/neode-ui/src/views/Web5.vue @@ -3768,6 +3768,13 @@ async function deleteIdentity() { onMounted(() => { web5AnimationDone = true + // Load the authoritative node DID from the backend (survives rotation) + rpcClient.getNodeDid().then(res => { + if (res.did && res.did !== storedDid.value) { + storedDid.value = res.did + try { localStorage.setItem('neode_did', res.did) } catch { /* noop */ } + } + }).catch(() => { /* use cached localStorage value */ }) loadPeers() loadReceivedMessages() loadIdentities()