ci / gate (push) Canceled after 6m53s
An open wallet can be removed from the accounts page (#86): its file is deleted, it leaves the session, and its account numbers and names leave the settings. Whether it holds nothing is decided in Rust, never by the webview, and a refusal says why: - every account must hold zero, free plus reserved, on every mainnet chain, read live; a chain that cannot be read refuses rather than assumes; - no reversible transfer may be pending to or from any of its accounts; - a phrase wallet's wormhole address must hold no unspent leaf, with the zk-tree scan current so none is unseen; - the wallet whose key controls the intents account is refused while that account holds any token; if it holds none, the record goes with the wallet and the next creation makes a new account. The control asks once, inline, and names what happens; no browser dialog. Keystore::remove reads the file first, so a symlink or a stranger's file is refused before anything is deleted; Session::forget drops the one wallet and keeps the password. Checked in a dev run with three wallets: Remove on a raw-key wallet holding nothing asked, deleted its file, took it out of the sidebar and cleaned its settings, with the other two left open. Closes #86 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUx7SPonBnB3ofU4mH41WT