Option A2
Tabs only + merged new-tab home
Option A without the lingering Home tab: workspaces are the only permanent tabs, and the new-tab empty state IS the homepage — overview, workspace launcher, and connect-a-workspace in one transient surface. Try opening AskMRI from the page, closing tabs, and pressing +.
Good morning, Felix
Pick up where the mail needs you — or open another workspace.
Ffelix@tinbox.dev
Needs you first
Live items come from open workspaces; greyed ones are last-known from closed workspaces. The report below covers how to make everything live.
Your workspaces
⌘T opens this page · closing the last tab lands here
What changed vs Option A
- No pinned Home tab. The strip holds only workspaces — the star of the show. The homepage and the new-tab empty state are merged into one transient surface: press + / ⌘T, or close the last tab, and it appears; open a workspace from it and the transient tab becomes that workspace (Chrome-NTP behavior).
- Global settings need no chrome. The merged page keeps a small account chip + gear, but the same items live in the system menu (Tinbox ▸ Settings, Add a server, Sign out) and the tray — so losing the permanent Home tab costs nothing. Likely a non-issue, as suspected.
- The aggregate surface stays a launcher, not a client. Each tenant workspace is highly customized and self-contained, so the merged page only summarizes and deep-links — it never acts on mail (no reply/archive buttons). That keeps it out of conflict with per-tenant UIs by design.
Tab UI refinements to carry forward
- Badges: unread count on every tab; a small VIP dot on background tabs only (the mock shows it on DriveChina/Raccook when inactive) so important mail pulls the eye without animating.
- Overflow: Chrome-style shrink-to-min-width, then icon-only tabs (brand square + badge) past ~8 workspaces. Never a second row, never a scrollbar in the strip.
- Keyboard: ⌘1–9 by strip position, ⌘T for the new-tab home, ⌘W closes (last close falls back to the home surface, not an empty window).
- Kept as-is: drag to reorder, middle-click close — the existing affordances the current shell already ships.
Research: can the new-tab page surface important messages?
Partially today, fully with one small addition. The mock renders the honest version of "today": open workspaces are live, closed ones are stale.
- What the shell has now: the IdP bootstrap gives the workspace list + branding; the per-tab preload polls unread counts — but only for tabs that exist, and counts only, no thread metadata. So a merged home can show live counts for open workspaces and cached last-known numbers for closed ones (as mocked, with the age stamp).
- Path 1 — hidden background views: keep a hidden WebContentsView per known workspace to poll everything. Works with zero server changes (and is what options B/C already assume for warm switching), but costs memory per workspace and still yields counts, not "needs you first" items.
- Path 2 (recommended) — a tiny desktop-digest endpoint on the tenant worker: e.g. unread/awaiting counts + top-N attention threads (sender, subject, reason, deep link), authenticated by the same shared-session cookie the tabs use (or the cleaner tbx_ bearer already noted as v2 in the shell README). It ships inside the engine via the normal tinbox package update, honors each tenant's own VIP/awaiting rules, and old tenant versions degrade gracefully to the stale-counts rendering.
- Rejected — aggregating through tinbox.dev: relaying mail summaries via the IdP would centralize tenant data through our infrastructure, against the ownership positioning. The shell should always fetch digests directly from each tenant origin.
Assessment
- Pros vs A: the strip contains only what matters (workspaces); "new tab" finally means something; connect-a-workspace gets a natural, discoverable home; one fewer permanent surface to maintain.
- Cons vs A: the overview is no longer one guaranteed click away — it exists only while a new tab is open (mitigate: ⌘T is cheap, and the dock badge still aggregates); first-run needs the transient tab open by default.
- Verdict: strictly better than A for the stated goals — same build size (it's still just the bundled home page + strip tweaks), no lingering Home tab, and it composes with D's ⌘K switcher unchanged. This should replace A as the recommended first ship.