Roster & Stage
Rows three and four of the Floor are where agents live. The roster shows every agent running in the active project, one card each. The stage below it shows exactly one thing at a time — usually the session of whichever card you selected.
The roster
Section titled “The roster”The roster is scoped to one project. Each running agent gets one card, and the cards page rather than scroll: a page holds up to five cards (fewer on a narrow window, where cards widen instead of clipping), and a pager on the right edge shows arrows and the page readout (e.g. 1/3). Nothing hides behind a scroll gesture.
Cards sort in a fixed order that is not configurable: needs-you first, then running, then done, then idle — and within a band, most recently changed first. If needs-you agents are on another page, the roster’s left rail shows their count; clicking it returns to page one, where the sort puts them.
What a card shows
Section titled “What a card shows”- State glyph and agent name, with the model it was dispatched on — or a
SELF-QUEUEDoutline tag for an agent queued by the system with no model yet. - State word — needs-you, running, done, or idle.
- Session title.
- Activity line — one sentence in the agent’s own voice about what it is doing right now. A paused agent always reads “Paused — you have the shell”.
- Footer — a context meter with its exact figure, the exact task count (e.g.
3/8), and the worktree.
Clicking a card puts that agent’s session on the stage. A card can also carry a close control in its corner — it arms and restates (“Close <name>?”) before it commits, so a mis-aimed click never kills an agent.
Collapsing
Section titled “Collapsing”The rail’s eye toggle collapses the roster to a thin bar that states the counts in words: Total 03 · Running 02 · Needs you 01. Counts of live things are always zero-padded and exact.
The stage
Section titled “The stage”The stage is the only row that flexes, and it hosts exactly one occupant at a time. The eleven occupants:
| Occupant | What it is |
|---|---|
| Stage session | A live agent session — the four-column view below. |
| Settings | The settings takeover. |
| Artifact browser | One filterable index over every artifact you can read, grouped by project; opening a row shows its detail with the list kept as a left column. |
| Entity detail | The read view for a spec, issue, task, doc, or note — read-only except a header dispatch action, with prior work and the verification verdict folded in. |
| Reconcile | The sync-conflict takeover: a labelled split diff and three resolutions. Never auto-merged. |
| First run | The launch and setup flow. |
| Roadmap board | The plan as a list — phase bands group rows, and every row carries a dispatch verb (Run, View, Shape, Delete). Nothing is dragged. |
| Welcome | What an empty roster shows (below). |
| Team dashboard | Two regions — an Activity feed with spec deep links, and the shared Projects list. Presence is neutral-only, refresh is manual. |
| Plugin page | A page contributed by an installed plugin. |
| Comms inbox | Email, Slack, and meeting triage, with meeting-to-issue/spec conversion. |
Switching occupants is instantaneous — a state swap, not a page transition.
The stage session: four columns
Section titled “The stage session: four columns”When an agent is on stage, the session view runs four columns left to right.
1. Sub-agents column
Section titled “1. Sub-agents column”A 46px rail (expanding to 376px with a detail panel) showing the fan-out inside the session — the sub-agents the agent spawned via its Task tool, coded 01, 02, … in spawn order. Select a tile and the panel shows that sub-agent’s task as the parent phrased it, its model, state, spawn time, context usage, and a line-by-line feed of what it did: spawned, searched, read, edited, ran, noted, returned. This column looks inside the session; the roster above is the only way to change which session is on stage.
2. Transcript
Section titled “2. Transcript”The conversation, read from Monday Morning’s owned transcript — the app’s own durable record of the session, not just the harness’s live stream. While the agent works, its current activity line shows beneath the turns. If the rendered turns are not provably the whole conversation, the transcript says so with a partial-record notice — absence of the notice means the record is known complete, never merely unchecked.
Above the transcript, the session header carries the agent’s name and state, the model chip (which doubles as the picker), an effort chip when the harness offers effort levels, Hand off →, and — when the agent is live on another machine — Resume here, labelled in full (e.g. “Live on studio-mbp · last event 3m ago”). A freshly handed-off agent shows a banner stating plainly that no transcript crossed; its first action is reading the spec and recorded lines.
Below the transcript: the NEXT strip, shown when a blocked agent offers structured next steps (e.g. “order.json wins” vs “frontmatter wins”) you can run with one click, and the reply bar for continuing the conversation — with the same capability-gated slash-command picker as the command bar.
3. Inspector (the artifact panel)
Section titled “3. Inspector (the artifact panel)”What the agent’s work actually produced, in three tabs:
- Preview — a URL bar (e.g.
localhost:5173), reload, and a live embedded view of your running app; when no live URL is loaded, the latest agent-taken screenshot renders instead, with its provenance (age, dimensions, environment) beneath — a capture older than a minute reads as stale. An unreachable server is stated as information (“No response”), never an alarm. The panel’s settings swap into the body — base URL, viewport (desktop / tablet / mobile), stored auth, and capture cadence (on-step / on-request / periodic) — without opening a dialog. - Diff — the changed files with per-file addition/deletion counts and their hunks.
- Terminal — the session’s streamed terminal output.
The Inspector collapses to a slim rail; its rotated tab labels remain clickable, so reaching Diff from collapsed is one click, and the freed width goes back to the transcript.
4. THIS SESSION panel
Section titled “4. THIS SESSION panel”A fixed 292px column, and the only surface in the product where an artifact is written by hand. Two regions, separated by a rule:
- Record — the attached spec (title and task meter, or “No spec attached to this session”), the recorded count (“3 recorded” or a warm “nothing recorded” — and with no spec, “No spec — nothing can outlive this session”), and proposal cards the agent has surfaced. Recording or dismissing a proposal is executed as the agent’s own
mm_recordcall, so every recorded line carries provenance. - Merge — the spec’s task checklist, and the worktree block: branch name, exact diff counts (
+120 −34 · 9 files), and the MERGE INTO MASTER button, which confirms by restating exactly what it will do (CONFIRM MERGE · 9 FILES).
The welcome occupant
Section titled “The welcome occupant”Whenever the roster is empty — first launch or after closing your last agent — the stage shows the welcome pane. It is not a one-time tour: “No agents are running. This is what an empty roster looks like. Add an agent and it shows up here.”
Three actions do real work:
- Add your first agent — puts a real task from this project into the ask; edit it or dispatch as-is.
- Connect a provider — sign in to a model account in settings; agents run on it.
- Open the roadmap — what this project plans to build, phase by phase.
Only one carries the filled treatment at a time: with no provider connected, the fill moves to Connect a provider and Add your first agent sits dormant (“Needs a connected provider first — start there.”) — the same refuse-honestly rule the Dispatch button follows. Coach marks point out the ask, the roster, and the doors, and “What makes this different?” opens the three product claims.