This commit is contained in:
@@ -22,6 +22,7 @@ derives approximately 71 columns by 42 rows per panel.
|
||||
|
||||
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.
|
||||
review fixtures remain deterministic comparison surfaces. The GPUI product
|
||||
slice now adds arbitrary panels through a persistent dynamic identity layer;
|
||||
each additional Terminal panel is another entry in the same runtime ownership
|
||||
design. The fixed fixture remains only as the GPUI/Floem benchmark input.
|
||||
|
||||
@@ -15,12 +15,11 @@ confirmation that names the process, target machine, and any dirty or waiting
|
||||
state. Detaching the selected panel chooses its next attached sibling, falling
|
||||
back to the previous sibling. A workspace retains at least one attached panel.
|
||||
|
||||
The add affordance has two product paths: quick activation creates the user's
|
||||
default panel beside the selection, while its menu offers Terminal, Browser,
|
||||
Markdown, Review, and Reattach running session. The deterministic UI spike uses
|
||||
six fixed fixtures, starts with five attached, and reattaches the first detached
|
||||
fixture when Add panel is activated. That fixture limit is test scaffolding, not
|
||||
a product limit.
|
||||
The add affordance opens a chooser for Terminal, Browser, Markdown, Review, and
|
||||
Reattach running session. The deterministic comparison model still uses six
|
||||
seed fixtures and starts with five attached. The GPUI slice no longer inherits
|
||||
that fixture limit: Add Panel creates a new persistent panel identity beside the
|
||||
selection or reattaches the exact detached identity without relaunching it.
|
||||
|
||||
The typed command plane retains detached pane definitions separately from the
|
||||
layout tree. `ClosePane(Detach)` moves a definition into that registry,
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# 0011: Dynamic panels have persistent local identities
|
||||
|
||||
Status: accepted for the GPUI product slice.
|
||||
|
||||
The six-surface fixture remains a deterministic benchmark shared with Floem; it
|
||||
is not the product's panel database. GPUI layers an unbounded workspace registry
|
||||
above it. Add Panel creates Terminal, Browser, Markdown, or Review beside the
|
||||
selected panel. Each new panel receives a monotonically increasing `PanelId`
|
||||
that is never derived from its title, position, surface, process ID, or visible
|
||||
index.
|
||||
|
||||
The registry persists panel identity, kind, title, target, order, attachment,
|
||||
selection, and the next unused ID as one versioned, credential-free SQLite
|
||||
snapshot. Invalid snapshots fail closed to the seed layout rather than partially
|
||||
restoring aliases. SQLite never stores terminal output, credentials, private
|
||||
keys, subscription tokens, or Buzz identity secrets through this boundary.
|
||||
|
||||
Every Terminal panel uses its `PanelId` as the runtime-registry key. Detaching
|
||||
changes only layout attachment, so the actor and PTY keep running. Reattaching
|
||||
selects the same ID. A restored in-process spike must currently launch a new PTY
|
||||
for that persisted panel because actor durability across UI process restarts
|
||||
requires the planned separate Lumbridge runtime and authenticated IPC; the UI
|
||||
does not pretend otherwise.
|
||||
Reference in New Issue
Block a user