- SavedAccount list persisted in localStorage (wrystr_accounts)
- loginWithNsec / loginWithPubkey now upsert into the accounts list
- fetchOwnProfile caches name + picture into the account entry
- switchAccount: loads nsec from OS keychain, falls back to read-only
- removeAccount: deletes keychain entry + removes from list; logs out
if it was the active account
- logout: clears active session only — keychain entries kept for instant
switch-back
- AccountSwitcher component in sidebar footer: shows current account,
expand (▼/▲) to list all saved accounts, click to switch instantly,
× to remove, "+ add account" opens LoginModal, sign-out / remove
account actions inline
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>