What this is
Right now Quicksilver supports exactly one email account per browser. This epic adds support for linking several accounts and switching between them (Gmail-style), in a way that won't need to be redone when we add OAuth later.
Design discussion: #16
How it works
- An account's profile (email, IMAP/SMTP settings) and its session (login token) are separate — losing a session doesn't unlink the account, it just needs signing back in.
- Switching to any linked account opens or focuses a browser tab for it, using a named
window.open target. No custom tab-tracking needed — the browser handles "focus it if it's already open, otherwise open a new one" on its own.
- Only accounts with a tab open stay live (real-time updates); others just show their last-synced state.
- No backend changes needed — the server already supports multiple concurrent sessions.
Not included here
OAuth sign-in itself, a unified inbox across accounts, cross-account search, shared drafts.
Progress
What this is
Right now Quicksilver supports exactly one email account per browser. This epic adds support for linking several accounts and switching between them (Gmail-style), in a way that won't need to be redone when we add OAuth later.
Design discussion: #16
How it works
window.opentarget. No custom tab-tracking needed — the browser handles "focus it if it's already open, otherwise open a new one" on its own.Not included here
OAuth sign-in itself, a unified inbox across accounts, cross-account search, shared drafts.
Progress
AuthContext(auth mechanics) from newAccountContext(accounts, sessions, switching) #22 — Auth & Account context refactorAccountSwitcherUI, multi-tab focus, and "Add account" flow #23 — Account switching UIEventSourcelifecycle scoped to open tabs only #24 — Real-time sync scoping