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.