mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
* fix(layout): restored terminals named only on their tab reattach after a restart (dark, layout-owner build only) In a layout-owner build, a terminal recorded only on its tab (an older session, or an SSH tab whose relay session was never visited) started a new shell after a restart and orphaned the old one, and an unvisited SSH tab lost its relay session id on the next save. - Main's Loader binds a one-pane tab's own terminal to its unbound pane in a workspace that was live at shutdown, as the window's reconnect does, so main's frames and saves hold it. - The window's reconnect writes the restored row terminal again: ptyId is a field the frame merge leaves to the window, so main's frames never set it on a restored row. * fix(layout): main binds a restored tab's own terminal once at load, not on every Loader run (dark, layout-owner build only) The Loader re-derived the binding on each load from fields the window rewrites live, so an exit main recorded could be undone. A switch-gated Store load repair now binds a one-pane tab's own terminal to its unbound pane, as the window's reconnect does, and main's saves keep it. It skips a terminal another mounted pane or a tab-bar tab holds, and a paired server's partition. * fix(layout): an SSH workspace's restored tab binds only its relay session id; repair runs after the load purge (dark, layout-owner build only) * test(layout): the reconnect gate test expects the row ptyId write; cover the repair's purge order and SSH repo predicate --------- Co-authored-by: E2E Test <e2e@test.local>