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 repository user, I want an executable document to open several interactive
terminals in one foreground grid, so I can work with multiple coding-agent
sessions and an ordinary repository shell at the same time.
The document declares the grid, panes, titles, and pane content. The host chooses
how to present them. The first production provider uses tmux, but no tmux
session, window, pane, target, command, key binding, socket, or process identity
appears in the authored surface. Another multiplexer or native interface can
implement the same contract later without changing the document.
The example states the layout and role intent. A production pane launches only
an Agent that the host has independently advertised under the existing native
launch proof; this Quest does not advertise Codex or another provider.
Current state
The product implementation is unbuilt. <Session.Launch> currently owns the
root execution's one foreground terminal, so simultaneous native launches
refuse. Ordinary executable blocks are piped and captured and therefore cannot
substitute for independent interactive terminals.
The architecture is settled in architecture.md § Interactive terminal grids, specs/executable-mdx-spec.md §6.21 and Tier TG, and specs/native-agent-session-launch-spec.md § Terminal-grid composition. Closed #726 and PR #727 establish the persistent tmux pane-worker topology and bounded
teardown facts. They are evidence and an accepted architecture decision, not
product implementation or delivery of this Quest.
Accepted product and lifecycle contract
<Terminal.Grid> and <Terminal> are core-owned structural syntax. A grid has
a positive integer column count and one or more statically authored direct
panes, placed in row-major order. A paired pane expands isolated document flow;
a self-closing pane runs the host's default interactive shell. Syntax inspection
and validation remain inert and report the same language on every runtime.
One grid owns the execution's foreground experience. Its panes start
concurrently through a replaceable provider and receive independent terminal
claims. The provider prepares the complete hidden composite and attaches it only
after every pane's interactive child reaches the runtime spawn event. Failure
before that barrier presents no partial grid and tears down all acquired work.
After attachment, panes settle independently and retain visible final statuses
while siblings remain usable. The grid remains foreground until the reader
closes or leaves it. Close prevents new launches, cancels live pane scopes,
awaits every child and finalizer, removes the provider composite, restores the
root terminal, and only then lets the document continue. The first failed pane
in authored order fails the grid at close; close-induced cancellation is not a
pane failure.
Pane terminal ownership never grants Agent-session ownership. Native launches
in distinct panes may own their terminals concurrently, while two panes naming
one logical Agent session still contend through the unchanged coordinator.
Durable launch identity, construction routes, executable binding, replay, and
provider advertisement remain those of #517.
Teardown proves the facts the host can observe: no process remains in a pane
process group, no process remains descended from a child alive when cancellation
began, no process holds a pane terminal, and no provider worker, client, server,
or private path remains. A descendant that already created a new session,
closed the pane terminal, and lost its parent is outside that observable macOS
boundary; the provider does not claim otherwise.
Owns the production tmux provider, Deno and compiled host assembly,
persistent pane workers, authenticated IPC, explicit layout, visible and
control clients, SIGHUP, and bounded process and terminal teardown.
#731 and #732 are independent consumers of #730 and may proceed in parallel.
The dependency graph is:
#729 → #730 → #731
└→ #732
Acceptance map
Quest outcome
Owning Story and evidence
Exact public syntax, static placement and row-major layout
Node and Bun expose the language and refuse operational use before pane start
#729 for catalog/validation and #732 for host-provider absence
Terminal-holder enumeration preserves quiescence without becoming public policy or a latency promise
#732; host process-adapter contract informed by #726
The Quest is complete when all four Stories are delivered to main, their
focused evidence passes, the terminal-grid portions of the three governing
contracts describe implemented rather than unbuilt behavior, and the resulting
runtime jobs remain covered by the required green aggregate.
Evidence already accepted
#726 closed with the persistent pane-worker topology accepted at PR #727
evidence commit 650510b5 and reviewed head/report 80770ea3. It proves
spawn-event readiness, byte-exact private IPC, job control, row-major layout,
atomic attach, independent close signals, phase cancellation, sequential reuse
after terminal-holder quiescence, and the bounded macOS teardown claim.
Its measured lsof -t terminal-holder sweep cost is a design constraint owned
by #732. It motivates keeping enumeration behind the host process adapter; it
does not create another POC, define a latency threshold, or permit pane reuse
before the same quiescence fact is established.
Out of scope
Advertising Codex or another unproven native Agent provider.
Provider-specific layout props, key bindings, or executable selection.
Detach-and-leave-running behavior, remote terminal hosting, browser streaming,
or transcript capture.
Story
As a repository user, I want an executable document to open several interactive
terminals in one foreground grid, so I can work with multiple coding-agent
sessions and an ordinary repository shell at the same time.
The document declares the grid, panes, titles, and pane content. The host chooses
how to present them. The first production provider uses tmux, but no tmux
session, window, pane, target, command, key binding, socket, or process identity
appears in the authored surface. Another multiplexer or native interface can
implement the same contract later without changing the document.
<Terminal.Grid columns={2}> <Terminaltitle="Architect"> <Agent name="codex"> <Session.Launch session="architect"> ...prepared Architect instructions... </Session.Launch></Agent> </Terminal> <Terminaltitle="Planner"> <Agent name="codex"> <Session.Launch session="planner"> ...prepared Planner instructions... </Session.Launch></Agent> </Terminal> <Terminaltitle="Implementor"> <Agent name="claude"> <Session.Launch session="implementor"> ...prepared Implementor instructions... </Session.Launch></Agent> </Terminal> <Terminaltitle="Workspace" /> </Terminal.Grid>The example states the layout and role intent. A production pane launches only
an Agent that the host has independently advertised under the existing native
launch proof; this Quest does not advertise Codex or another provider.
Current state
The product implementation is unbuilt.
<Session.Launch>currently owns theroot execution's one foreground terminal, so simultaneous native launches
refuse. Ordinary executable blocks are piped and captured and therefore cannot
substitute for independent interactive terminals.
The architecture is settled in
architecture.md§ Interactive terminal grids,specs/executable-mdx-spec.md§6.21 and Tier TG, andspecs/native-agent-session-launch-spec.md§ Terminal-grid composition. Closed#726 and PR #727 establish the persistent tmux pane-worker topology and bounded
teardown facts. They are evidence and an accepted architecture decision, not
product implementation or delivery of this Quest.
Accepted product and lifecycle contract
<Terminal.Grid>and<Terminal>are core-owned structural syntax. A grid hasa positive integer column count and one or more statically authored direct
panes, placed in row-major order. A paired pane expands isolated document flow;
a self-closing pane runs the host's default interactive shell. Syntax inspection
and validation remain inert and report the same language on every runtime.
One grid owns the execution's foreground experience. Its panes start
concurrently through a replaceable provider and receive independent terminal
claims. The provider prepares the complete hidden composite and attaches it only
after every pane's interactive child reaches the runtime spawn event. Failure
before that barrier presents no partial grid and tears down all acquired work.
After attachment, panes settle independently and retain visible final statuses
while siblings remain usable. The grid remains foreground until the reader
closes or leaves it. Close prevents new launches, cancels live pane scopes,
awaits every child and finalizer, removes the provider composite, restores the
root terminal, and only then lets the document continue. The first failed pane
in authored order fails the grid at close; close-induced cancellation is not a
pane failure.
Pane terminal ownership never grants Agent-session ownership. Native launches
in distinct panes may own their terminals concurrently, while two panes naming
one logical Agent session still contend through the unchanged coordinator.
Durable launch identity, construction routes, executable binding, replay, and
provider advertisement remain those of #517.
Teardown proves the facts the host can observe: no process remains in a pane
process group, no process remains descended from a child alive when cancellation
began, no process holds a pane terminal, and no provider worker, client, server,
or private path remains. A descendant that already created a new session,
closed the pane terminal, and lost its parent is outside that observable macOS
boundary; the provider does not claim otherwise.
Dependency-ordered implementation Stories
row-major layout, syntax catalog, and inert document validation.
concurrency, readiness, atomic attach, default shell, output, settlement,
teardown, durability, replay, and the controlled non-tmux provider.
ownership, native readiness, cancellation, quiescence, and controlled Agent
journey.
persistent pane workers, authenticated IPC, explicit layout, visible and
control clients, SIGHUP, and bounded process and terminal teardown.
#731 and #732 are independent consumers of #730 and may proceed in parallel.
The dependency graph is:
Acceptance map
The Quest is complete when all four Stories are delivered to
main, theirfocused evidence passes, the terminal-grid portions of the three governing
contracts describe implemented rather than unbuilt behavior, and the resulting
runtime jobs remain covered by the required
greenaggregate.Evidence already accepted
#726 closed with the persistent pane-worker topology accepted at PR #727
evidence commit
650510b5and reviewed head/report80770ea3. It provesspawn-event readiness, byte-exact private IPC, job control, row-major layout,
atomic attach, independent close signals, phase cancellation, sequential reuse
after terminal-holder quiescence, and the bounded macOS teardown claim.
Its measured
lsof -tterminal-holder sweep cost is a design constraint ownedby #732. It motivates keeping enumeration behind the host process adapter; it
does not create another POC, define a latency threshold, or permit pane reuse
before the same quiescence fact is established.
Out of scope
or transcript capture.
from PR 🔬 Prove persistent tmux pane workers for <Terminal.Grid> (#726) #727.