From 8212049f5712e6029652372577d0cf1d48f96a1a Mon Sep 17 00:00:00 2001 From: archipelago Date: Tue, 15 Sep 2026 16:03:52 -0400 Subject: [PATCH] Shorten ecash backup copy and stack card actions --- docs/incident-framework-lnd-startup.md | 13 ++++ neode-ui/src/components/EcashSeedBackup.vue | 72 +++++++++------------ 2 files changed, 45 insertions(+), 40 deletions(-) diff --git a/docs/incident-framework-lnd-startup.md b/docs/incident-framework-lnd-startup.md index 34803129..6f433810 100644 --- a/docs/incident-framework-lnd-startup.md +++ b/docs/incident-framework-lnd-startup.md @@ -286,3 +286,16 @@ record final human confirmation of the rendered dashboard balance (native balanc match exactly, and UI failure/recovery regressions pass). Keep this follow-up visible across sessions; do not rebuild/reboot/reinitialize a working wallet just to repeat already completed checks. + +### Backup copy and layout — 2026-09-15 + +At the user's request, shortened the ecash backup explanations and stacked each +card section's text and full-width action vertically. Kept the distinction +between node-derived and separate phrases, and the warning that a newly created +phrase covers future coins rather than existing legacy coins. + +All 10 Receive/backup tests and the production UI build pass. Deployed the UI to +Framework without a restart; served index and backup-component bundle match the +build byte-for-byte. The prior UI is saved as `web-ui-before-backup-copy` in the +protected incident directory. Source integration and final rendered dashboard +balance confirmation remain pending as above. diff --git a/neode-ui/src/components/EcashSeedBackup.vue b/neode-ui/src/components/EcashSeedBackup.vue index b45534e3..45409472 100644 --- a/neode-ui/src/components/EcashSeedBackup.vue +++ b/neode-ui/src/components/EcashSeedBackup.vue @@ -226,61 +226,54 @@ async function restoreFromPhrase() { Your ecash has no backup yet -
+

{{ setupOnly ? 'Set up your Cashu Lightning address' : 'Ecash backup phrase' }}

-

- Your ecash wallet has its own 24-word phrase, derived from this node's recovery - phrase — so the words you already wrote down cover your ecash too. Reveal it here - if you want to restore your ecash into another wallet (Minibits, Nutstash, - cdk-cli) without handing over the node's own seed. +

+ Your node's recovery phrase also recovers this ecash phrase. Reveal its 24 words + to restore in a compatible Cashu wallet without sharing your node's phrase.

-

- Your ecash wallet has its own 24-word phrase. Reveal it to write it down, or to - restore your ecash into another wallet (Minibits, Nutstash, - cdk-cli). +

+ Save your 24-word ecash phrase to restore this wallet here or in another + compatible Cashu wallet.

-

- Ecash is a bearer instrument: the coins live in a file on this node, and right now - nothing can bring them back if that file is lost. Setting up a backup phrase fixes - that for every coin minted from then on. +

+ If this node's coin file is lost, your ecash is lost. Set up a phrase to recover + future coins; existing coins aren't covered.

- This wallet's phrase was not derived from the node's recovery - phrase{{ status?.source === 'imported' ? ' — it was imported' : '' }}, so restoring - the node will not bring the ecash back. Only these words will. + {{ status?.source === 'imported' ? 'This imported phrase' : 'This phrase' }} is separate + from your node's backup. Only these words recover this ecash wallet.

-
-

+

+

Restore from this phrase. - Asks your mint which coins it has signed for these words and puts back any that - are still unspent. Safe to run at any time — it never duplicates coins you already - hold. + Recover unspent coins from your mint. Safe to repeat; coins you already hold + won't be duplicated.

@@ -290,15 +283,15 @@ async function restoreFromPhrase() {
-
-

+

+

Use a phrase from another wallet. - Point this wallet at a phrase you already have — from Minibits, Nutstash or - cdk-cli — so its coins can be restored here. + Import a phrase from Minibits, Nutstash or cdk-cli + to restore its coins here.

@@ -324,7 +317,7 @@ async function restoreFromPhrase() {