fix(wallet-switch): cluster C — no mis-scoping in the unknown-identity window
From the audit: while a switch/first-load is in flight the wallet identity hash is empty, so contact/portfolio scope-writes silently fell back to "global" (leaking a wallet-specific entry into every wallet) and scope-filters showed every wallet's scoped entries. - Contacts: a NEW wallet-scoped contact created while the identity is unknown is now refused with a clear message (tick global or wait); editing an existing scoped contact preserves its scope instead of demoting it to global. - Portfolio: the "Add group" button is disabled while the identity is unknown (with a tooltip), so a new group can't get an empty/global scope. - Both views' visibility filters now show ONLY global entries when the identity is unknown — never another wallet's scoped contacts/groups — instead of showing everything. - +2 i18n strings (8 langs; reworded one zh string to stay within the CJK subset). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1245,6 +1245,7 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["contact_avatar_remove"] = "Remove";
|
||||
strings_["contact_avatar_image_hint"] = "The image is copied into the app so it stays available if the original moves.";
|
||||
strings_["contact_avatar_copy_failed"] = "Could not copy that image.";
|
||||
strings_["contact_wallet_loading"] = "The wallet is still loading — tick \"Show in every wallet\", or try again in a moment.";
|
||||
strings_["contact_avatar_bad_image"] = "That image couldn't be loaded.";
|
||||
strings_["contact_global_badge_tt"] = "Global contact — visible in every wallet";
|
||||
strings_["address_book_added"] = "Address added to book";
|
||||
@@ -1520,6 +1521,7 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["portfolio_no_addr_match"] = "No addresses match";
|
||||
strings_["portfolio_manage_title"] = "Manage portfolio";
|
||||
strings_["portfolio_add_entry"] = "Add entry";
|
||||
strings_["portfolio_wallet_loading"] = "Wait until the wallet finishes loading to add a group.";
|
||||
strings_["portfolio_new_entry"] = "New entry";
|
||||
strings_["portfolio_label"] = "Label";
|
||||
strings_["portfolio_addresses_sel"] = "%d selected";
|
||||
|
||||
Reference in New Issue
Block a user