Quest: Add interactive terminal grids to executable documents #717

Description

@taras

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 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.

Dependency-ordered implementation Stories

  1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
    • Owns the core grammar, exact forms and props, structural placement,
      row-major layout, syntax catalog, and inert document validation.
  2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
  3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
  4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

#731 and #732 are independent consumers of #730 and may proceed in parallel.
The dependency graph is:

#729 → #730 → #731
└→ #732

Acceptance map

Quest outcomeOwning Story and evidence
Exact public syntax, static placement and row-major layout#729; TG1–TG4
Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      Quest: Add interactive terminal grids to executable documents #717

      Description

      @taras

      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 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.

      Dependency-ordered implementation Stories

      1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
        • Owns the core grammar, exact forms and props, structural placement,
          row-major layout, syntax catalog, and inert document validation.
      2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
      3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
      4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

      #731 and #732 are independent consumers of #730 and may proceed in parallel.
      The dependency graph is:

      #729 → #730 → #731
      └→ #732
      

      Acceptance map

      Quest outcomeOwning Story and evidence
      Exact public syntax, static placement and row-major layout#729; TG1–TG4
      Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
      Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
      Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
      Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
      Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
      Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
      Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
      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

      Activity

      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          Quest: Add interactive terminal grids to executable documents #717

          Description

          @taras

          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 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.

          Dependency-ordered implementation Stories

          1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
            • Owns the core grammar, exact forms and props, structural placement,
              row-major layout, syntax catalog, and inert document validation.
          2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
          3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
          4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

          #731 and #732 are independent consumers of #730 and may proceed in parallel.
          The dependency graph is:

          #729 → #730 → #731
          └→ #732
          

          Acceptance map

          Quest outcomeOwning Story and evidence
          Exact public syntax, static placement and row-major layout#729; TG1–TG4
          Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
          Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
          Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
          Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
          Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
          Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
          Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
          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

          Activity

          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              Quest: Add interactive terminal grids to executable documents #717

              Description

              @taras

              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 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.

              Dependency-ordered implementation Stories

              1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
                • Owns the core grammar, exact forms and props, structural placement,
                  row-major layout, syntax catalog, and inert document validation.
              2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
              3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
              4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

              #731 and #732 are independent consumers of #730 and may proceed in parallel.
              The dependency graph is:

              #729 → #730 → #731
              └→ #732
              

              Acceptance map

              Quest outcomeOwning Story and evidence
              Exact public syntax, static placement and row-major layout#729; TG1–TG4
              Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
              Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
              Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
              Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
              Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
              Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
              Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
              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

              Activity

              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  Quest: Add interactive terminal grids to executable documents #717

                  Description

                  @taras

                  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 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.

                  Dependency-ordered implementation Stories

                  1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
                    • Owns the core grammar, exact forms and props, structural placement,
                      row-major layout, syntax catalog, and inert document validation.
                  2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
                  3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
                  4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

                  #731 and #732 are independent consumers of #730 and may proceed in parallel.
                  The dependency graph is:

                  #729 → #730 → #731
                  └→ #732
                  

                  Acceptance map

                  Quest outcomeOwning Story and evidence
                  Exact public syntax, static placement and row-major layout#729; TG1–TG4
                  Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
                  Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
                  Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
                  Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
                  Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
                  Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
                  Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
                  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

                  Activity

                  Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      Quest: Add interactive terminal grids to executable documents #717

                      Description

                      @taras

                      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 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.

                      Dependency-ordered implementation Stories

                      1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
                        • Owns the core grammar, exact forms and props, structural placement,
                          row-major layout, syntax catalog, and inert document validation.
                      2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
                      3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
                      4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

                      #731 and #732 are independent consumers of #730 and may proceed in parallel.
                      The dependency graph is:

                      #729 → #730 → #731
                      └→ #732
                      

                      Acceptance map

                      Quest outcomeOwning Story and evidence
                      Exact public syntax, static placement and row-major layout#729; TG1–TG4
                      Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
                      Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
                      Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
                      Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
                      Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
                      Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
                      Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
                      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

                      Activity

                      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          Quest: Add interactive terminal grids to executable documents #717

                          Description

                          @taras

                          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 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.

                          Dependency-ordered implementation Stories

                          1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
                            • Owns the core grammar, exact forms and props, structural placement,
                              row-major layout, syntax catalog, and inert document validation.
                          2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
                          3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
                          4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

                          #731 and #732 are independent consumers of #730 and may proceed in parallel.
                          The dependency graph is:

                          #729 → #730 → #731
                          └→ #732
                          

                          Acceptance map

                          Quest outcomeOwning Story and evidence
                          Exact public syntax, static placement and row-major layout#729; TG1–TG4
                          Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
                          Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
                          Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
                          Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
                          Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
                          Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
                          Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
                          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

                          Activity

                          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              Quest: Add interactive terminal grids to executable documents #717

                              Description

                              @taras

                              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 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.

                              Dependency-ordered implementation Stories

                              1. Describe terminal grids as executable document structure #729Describe terminal grids as executable document structure
                                • Owns the core grammar, exact forms and props, structural placement,
                                  row-major layout, syntax catalog, and inert document validation.
                              2. Execute concurrent terminal panes through a replaceable provider #730Execute concurrent terminal panes through a replaceable provider
                              3. Launch native Agent sessions in independent terminal panes #731Launch native Agent sessions in independent terminal panes
                              4. Open terminal grids with tmux in foreground runs #732Open terminal grids with tmux in foreground runs

                              #731 and #732 are independent consumers of #730 and may proceed in parallel.
                              The dependency graph is:

                              #729 → #730 → #731
                              └→ #732
                              

                              Acceptance map

                              Quest outcomeOwning Story and evidence
                              Exact public syntax, static placement and row-major layout#729; TG1–TG4
                              Catalog and validation perform no terminal, shell, tmux, or Agent work#729; TG3
                              Concurrent isolated pane execution through non-authoritative provider routing and direct terminal authority#730; TG6–TG7 and controlled-provider TG18
                              Runtime-spawn readiness, hidden atomic startup and authored-order startup failure#730; TG8–TG9
                              Independent visible settlement and complete reader-close, cancellation and provider-failure teardown#730; TG10 and TG12–TG14
                              Provider-neutral durability, completed replay, partial replay and divergence#730; TG15–TG17
                              Concurrent native sessions in distinct panes without weakening logical-session ownership#731; TG5, TG11 and native-launch checklist 24–27
                              Deno/compiled tmux presentation with private workers, exact IPC, explicit layout, close classification and bounded teardown#732; tmux half of TG18
                              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

                              Activity

                              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                enhancementNew feature or requestquestCoordinating story with dependency-ordered sub-issues

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions