You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a person coordinating several coding agents, I want one XMD interface to preserve, display, and interact with their sessions, so I can move between roles and issues without losing conversation state or depending on each provider's native UI.
An executable document declares a provider-neutral grid. Each pane can launch an Agent session, follow an independently owned session, or display the retained REPL. Tmux presents that grid first; an XMD-owned provider can present the same document later. Interaction always uses the authority belonging to the session rather than terminal-state inference.
The unmerged #717 stack proves concurrent interactive panes and tmux lifecycle, but its public syntax identifies every pane as a terminal. XMD can interact reliably through ACP, yet those messages do not become visible in an already-open provider-native TUI.
Issue #774 tested whether session-file observation plus terminal convergence could bridge that gap without provider cooperation. Passive observation succeeded; generic tmux input remained subject to an uncloseable race between the final provider-file sample and terminal paste. The safe result is VIEW_ONLY: observe provider sessions from their files, but never use that observation to authorize input.
Product contract
Grid and pane are the durable presentation vocabulary. Tmux and a first-party XMD multiplexer implement the same run-only provider contract. A physical terminal remains a capability a pane may require, not the identity of every cell.
<Session.Launch> and <Session.Tail> are interchangeable as pane session sources and differ in authority. Launch owns the interaction and lifecycle its Agent provider grants. Tail observes an independently owned native session and can only stop observing it.
A retained XMD REPL owns interactive ACP sessions and their queues. Every viewer projects the same immutable action store and ACP event stream; a viewer does not open another ACP client. Provider session files supply read-only history and live observation, never prompt, permission, completion, cancellation, identity-allocation, or teardown authority.
Tmux remains useful for document-configured layouts and titles, including role and current issue. It is an xmd run provider, not Workflow behavior. No child in this Quest adds terminal presentation, live provider-file observation, or REPL interaction to Workflow.
Story
As a person coordinating several coding agents, I want one XMD interface to preserve, display, and interact with their sessions, so I can move between roles and issues without losing conversation state or depending on each provider's native UI.
An executable document declares a provider-neutral grid. Each pane can launch an Agent session, follow an independently owned session, or display the retained REPL. Tmux presents that grid first; an XMD-owned provider can present the same document later. Interaction always uses the authority belonging to the session rather than terminal-state inference.
Current gap
The unmerged #717 stack proves concurrent interactive panes and tmux lifecycle, but its public syntax identifies every pane as a terminal. XMD can interact reliably through ACP, yet those messages do not become visible in an already-open provider-native TUI.
Issue #774 tested whether session-file observation plus terminal convergence could bridge that gap without provider cooperation. Passive observation succeeded; generic tmux input remained subject to an uncloseable race between the final provider-file sample and terminal paste. The safe result is VIEW_ONLY: observe provider sessions from their files, but never use that observation to authorize input.
Product contract
Grid and pane are the durable presentation vocabulary. Tmux and a first-party XMD multiplexer implement the same run-only provider contract. A physical terminal remains a capability a pane may require, not the identity of every cell.
<Session.Launch>and<Session.Tail>are interchangeable as pane session sources and differ in authority. Launch owns the interaction and lifecycle its Agent provider grants. Tail observes an independently owned native session and can only stop observing it.A retained XMD REPL owns interactive ACP sessions and their queues. Every viewer projects the same immutable action store and ACP event stream; a viewer does not open another ACP client. Provider session files supply read-only history and live observation, never prompt, permission, completion, cancellation, identity-allocation, or teardown authority.
Tmux remains useful for document-configured layouts and titles, including role and current issue. It is an
xmd runprovider, not Workflow behavior. No child in this Quest adds terminal presentation, live provider-file observation, or REPL interaction to Workflow.Dependency-ordered child map
xmd runterminal panes #774 — Test black-box REPL messaging throughxmd runterminal panes<Grid>and<Pane>#781 — Make executable document grids use<Grid>and<Pane><Session.Tail>andxmd tail#782 — View coding-agent sessions with<Session.Tail>andxmd tailxmd runterminal panes #774's passive evidence and Make executable document grids use<Grid>and<Pane>#781's pane surface.<Session.Tail>andxmd tail#782.<Grid>and<Pane>#781–Interact with multiple Agent sessions through a retained XMD REPL #783.Completion
The Quest is complete when:
<Grid>and<Pane>are the only shipped grid syntax and the old unshipped Terminal names and packages are absent;<Session.Tail>andxmd tailopen and follow exact supported Claude and Codex sessions read-only;Relationships and boundaries
<Session.Launch>#755 and PR ✨ Launch Codex sessions with <Session.Launch> (#755) #764 remain the Codex native-launch certification and are not repurposed by this Quest.