From 5bd07b0505439ca954bf822fb9d5a62e57f07f2e Mon Sep 17 00:00:00 2001 From: DanS Date: Tue, 14 Jul 2026 12:02:11 -0500 Subject: [PATCH] test(sweep): add modal-decrypt capture surface Register the redesigned "Remove Wallet Encryption" dialog as a sweep surface so its passphrase-entry phase is captured for visual review. The setup resets the WalletSecurityWorkflow (keeping it in PassphraseEntry) and never fires the async unlock/export/restart pyramid; the teardown resets and zeroes decrypt_pass_buf_. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app_sweep.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/app_sweep.cpp b/src/app_sweep.cpp index e4cdf4e..490e0fd 100644 --- a/src/app_sweep.cpp +++ b/src/app_sweep.cpp @@ -294,6 +294,14 @@ void App::buildSweepCatalog() memset(a.change_new_pass_buf_, 0, sizeof(a.change_new_pass_buf_)); memset(a.change_confirm_buf_, 0, sizeof(a.change_confirm_buf_)); }); + // Remove-encryption dialog — the redesigned passphrase-entry phase (reset() keeps the + // workflow in PassphraseEntry; nothing fires the async unlock/export/restart pyramid). + add("modal-decrypt", ui::NavPage::Settings, + [](App& a) { a.wallet_security_workflow_.reset(); a.show_decrypt_dialog_ = true; }, + [](App& a) { + a.show_decrypt_dialog_ = false; a.wallet_security_workflow_.reset(); + memset(a.decrypt_pass_buf_, 0, sizeof(a.decrypt_pass_buf_)); + }); add("modal-about", ui::NavPage::Overview, [](App& a) { a.show_about_ = true; }, [](App& a) { a.show_about_ = false; }); add("modal-settings", ui::NavPage::Settings,