This commit is contained in:
@@ -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