From f72a9718a3ac2397e8fc95be8b6f864632ebb1cb Mon Sep 17 00:00:00 2001 From: 2ro <17595647+2ro@users.noreply.github.com> Date: Mon, 6 Jul 2026 21:10:25 -0400 Subject: [PATCH] goblin: move Trusted Sites into the nostr settings group + fix raw-key leaks Trusted Sites is nostr-identity signing, and name authority now lives on the Username page, so the nostr cluster is its logical home. Pure placement move: the row now renders inside the identity card just below Nostr Relays; label, live session-count value, and open handler are unchanged. Also carries the two raw-key leak fixes (goblin.receipt.copied -> goblin.receive.copied, wallets.canceled -> wallets.tx_canceled) and the every_t_call_site_key_exists_in_en guard, so this branch is clean on its own. Translations for the new settings/username/advprivacy keys were reviewed across all six locales and left as-is (consistent with house register). --- src/gui/views/goblin/mod.rs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/gui/views/goblin/mod.rs b/src/gui/views/goblin/mod.rs index ec485673..f35c8b64 100644 --- a/src/gui/views/goblin/mod.rs +++ b/src/gui/views/goblin/mod.rs @@ -3615,6 +3615,10 @@ impl GoblinWalletView { // Username has its own home (claim/release + name authority); the // row shows the current name (or "Not set") and opens that page. let mut open_username = false; + // Trusted Sites (the active Authorize Sessions) lives with the + // nostr rows — it is nostr-identity signing, not a wallet setting + // — but its open handler runs further down, so the flag is here. + let mut open_trusted = false; w::card(ui, |ui| { if !npub.is_empty() { let username = wallet @@ -3667,6 +3671,20 @@ impl GoblinWalletView { ) { open_relays = true; } + // Trusted Sites: the active Authorize Sessions, with a + // one-tap end; the row value is the live session count. + // Nostr-identity signing, so it sits with the keys/relays. + let session_count = wallet + .nostr_service() + .map(|s| s.session_summaries().len()) + .unwrap_or(0); + if settings_row_nav( + ui, + &t!("goblin.settings.trusted_sites"), + &session_count.to_string(), + ) { + open_trusted = true; + } } }); if open_username { @@ -3727,7 +3745,6 @@ impl GoblinWalletView { ui.add_space(16.0); let mut open_node = false; let mut open_slatepack = false; - let mut open_trusted = false; settings_group(ui, &t!("goblin.settings.wallet"), |ui| { if settings_row_nav(ui, &t!("goblin.settings.node"), &node_summary(wallet)) { open_node = true; @@ -3757,19 +3774,6 @@ impl GoblinWalletView { ) { open_slatepack = true; } - // Trusted Sites: the active Authorize Sessions, with a one-tap - // end. Shows the live count as the row value. - let session_count = wallet - .nostr_service() - .map(|s| s.session_summaries().len()) - .unwrap_or(0); - if settings_row_nav( - ui, - &t!("goblin.settings.trusted_sites"), - &session_count.to_string(), - ) { - open_trusted = true; - } }); if open_slatepack { self.slatepack = SlatepackManual::default();