43b6d80ea6
Fixes from code-simplicity and architecture reviews: Critical fixes: - Per-account bunker ephemeral key alias (bunker_ephemeral_<npub>) instead of shared alias. Prevents wrong-identity handshake when switching bunker accounts. Falls back to legacy alias for existing single-account setups. - Resource cleanup in switchAccount(): closes NIP-46 subscription, stops heartbeat, disconnects NIP-46 client before transitioning to new account. - Manages signer connection state on switch (Connected for bunker, NotRemote otherwise). Simplifications: - Removed unused createWithStorage() factory (zero callers) - Removed loadViewOnlyAccount() dead code (no UI path to create view-only accounts) - Removed unused allAccounts collection at Window scope (duplicated in MainContent) - Files.move with REPLACE_EXISTING for cross-platform atomic rename - Remote signer with empty bunkerUri falls back to Internal (prevents corrupt state) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>