Skip to content

Unified workspace layout: merge Grid and Dispatch into one stage-over-fleet workspace #992

Closed

Description

@Juliusolsson05

Problem

Two layout modes (Grid tile trees, Dispatch) with two placement authorities, two focus truths, two spawn/close paths, and mode-split command surfaces (grid / dispatch). New users must pick a mode before they can work; command titles are mode-relative; every layout bug class on record came from one system mirroring the other.

Evidence: owner's live workspace runs 12 lanes in 2 rows, 14 detached sessions, and project tabs each holding a single pane — tabs are used as project buckets, not split trees. Nested splits are never used.

Proposal

One layout, per docs/superpowers/plans/2026-09-17-unified-stage-layout.md:

  • Fleet pool is the only home for sessions (agents, terminals, extension views); "detached" becomes the default state.
  • Stage = ragged rows of lanes (today's Grid Dispatch promoted from mode to workspace). Lanes are space; only the user names occupants; two sanctioned continuity writes (entry seed, context-places spawn).
  • Projects are labels, not layouts — chips, not tabs; own no placement.
  • One focus truth (focusedLane); Spotlight/Reader/Focus stay as lenses.
  • Vocabulary: "Dispatch"/mode names retire from all user-facing language; grid+dispatch surfaces merge into one workspace surface; command ids stay stable so bindings never orphan.
  • Onboarding: first run is one row x one lane, focused; Neovim-style starter card (registry-driven live keybinds) on fresh agents and empty lanes.

Deletes: TileNode/treeOps/TileTree splits, detachedSessions + buried buckets, mode toggle + switch-back banner, scope, Tile Tabs, normalize/rotate/nav commands.

Migration: workspace.json v2 -> v3 read-time pure function (tabs -> projects, detached/buried folded into pool, dispatchMode.tiled -> stage, accepted loss: multi-pane tab arrangements are pooled, not reconstructed).

Execution: 8 stages in the plan, each leaving npm run check green.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions