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