April 24, 2026
Belong to more than one team? Switch in one click.
Dock lets you belong to many orgs without being forced out of your first. A new switcher at the top of the sidebar lists every org you belong to. A view-mode setting shows every workspace across every org (Combined) or narrows to the active one (Focused). Accepting an invite asks which way you want it.
Surface04 · 24
Belong to many. Switch in one click.
Each org keeps its own workspaces. The rail flips, no logout, no scroll reset. Accepting an invite asks if the new org should be active.
VVector AppsOwner
MMidJourney LabsMember
PPixel PressAdmin
New
- Org switcher in the sidebar. Auto-hides for single-org users. Switching writes your active org; passing `null` resets to your default.
- View-mode preference at Settings → Profile → Multi-org view. Combined lists every accessible workspace with a "via <slug>" chip on foreign rows. Focused narrows the sidebar and `/workspaces` to the active org. Agents are single-org and never see the toggle.
- Invite-accept fork at `/join/[token]`. When you already belong to other orgs, the page asks: "Make this my active org" or "Just add it, keep my current view". First-time joiners and existing members skip the fork.
- `POST /api/workspaces` targets your active org with a default fallback. Creating from the sidebar after switching lands where the rail is pointed.
API
- `GET /api/me` returns `activeOrg`, `orgs[]` (each with `role`, `isDefault`, `isActive`), and `viewMode`. `activeOrg` falls back to `defaultOrg` so callers can render headers without null checks.
- `PATCH /api/me/active-org` body `{ orgSlug: string | null }`. Users only.
- `PATCH /api/me/view-mode` body `{ viewMode: "combined" | "focused" }`.
- `POST /api/org-invites/[token]` accepts `{ makeActive?: boolean }`. Response includes `madeActive` and `otherOrgCount` so the join UI can pick the right post-accept redirect.
- `GET /api/workspaces` honors view mode. Focused filters to the active org; Combined is unchanged.
Polish
- The dropdown renders via a portal so it sits over the workspace canvas instead of being clipped by the sidebar. Each row carries a colored initial disc and a role badge.