feat(seed,console): persistent re-nudging seed backup; confirm destructive console commands

- Seed backup: the one-time 12s toast that marked itself "reminded" the instant
  it fired (so a funded, unbacked wallet was never nudged again) is replaced by
  an actionable alert with a "Back up now" link that opens the backup dialog and
  persists in the bell panel. "Reminded" now means the user actually viewed the
  phrase (set from the backup dialog), so the nudge re-fires each session until
  they do, and escalates to a warning once a balance exists.
- Console: fund-moving / key-revealing commands (dumpprivkey, z_exportkey,
  z_sendmany, z_mergetoaddress, …) now require a confirming re-entry when typed
  or PASTED, honoring the command reference's `destructive` flag that was
  previously enforced only by the reference dialog's Run button. (Output
  masking of key dumps in the scrollback is still a follow-up.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 16:46:09 -05:00
co-authored by Claude Opus 4.8
parent e27d88eca4
commit 643ac7daef
6 changed files with 61 additions and 6 deletions
+6
View File
@@ -4654,6 +4654,12 @@ void App::renderSeedBackupDialog()
seed_backup_loading_ = false;
if (ok) {
seed_backup_phrase_ = phrase; // working copy — wiped on close
// The user is now looking at their seed via the dedicated backup flow — treat that as
// backed up, so the periodic nudge (maybeRemindSeedBackup) stops for good.
if (settings_ && !settings_->getSeedBackupReminded()) {
settings_->setSeedBackupReminded(true);
settings_->save();
}
} else if (noMnemonic) {
seed_backup_no_mnemonic_ = true;
} else {