feat: index runtime sessions by pane
CI / rust (push) Successful in 4m19s

This commit is contained in:
2026-08-31 18:29:28 -07:00
parent abcf664ab8
commit 4ed7613b22
9 changed files with 679 additions and 205 deletions
@@ -25,3 +25,9 @@ Dropping the UI-side actor disconnects its bounded channels, releases an actor
blocked by event backpressure, terminates the process group through
`lumbridge-pty`, and joins the actor thread. Tests use only synthetic shell
fixtures and never provider credentials or real transcripts.
A pane-indexed registry now owns multiple actors and routes commands and events
without exposing pane identity to the actor itself. Duplicate ownership is
rejected before spawning. Detaching a panel does not touch this registry;
explicit registry shutdown is the process-terminating operation. The GPUI slice
currently owns three registry entries, one for each terminal fixture.
@@ -20,7 +20,8 @@ resized through the runtime actor when the responsive panel count or window
bounds change. On the 3440×1440 reference display the current fixed-cell spike
derives approximately 71 columns by 42 rows per panel.
The first actor slice still owns one real PTY and five deterministic comparison
surfaces. Promoting the runtime boundary from one actor to a pane-indexed session
registry is required before all five visible terminal panels can own independent
real processes.
The runtime slice now owns three independent real PTYs through a pane-indexed
session registry, one for every terminal fixture. The Markdown, browser, and
review fixtures remain deterministic comparison surfaces. Adding arbitrary new
terminal panels requires replacing the fixed fixture identity pool with dynamic
pane creation; it does not require another runtime ownership design.