mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
* fix(ssh): stop a closed bridged relay tab's shell from every close route, across restarts The renderer's tab-close kill tombstoned a bridged lease before the bridge's own close ran, so the old relay's shell kept running. Route it through the bridge like the runtime kill. Persist a pending bridged stop on the lease's pendingKill so a restart before reconnecting still sends it, and list such leases for the stop without serving them as panes. Co-Authored-By: Claude <noreply@anthropic.com> * fix(ssh): end a closed bridged tab's lease when its stop can't be proven Clearing the stop left the lease bridgeable, so a process that took the recycled relay id was served under the closed tab. Retire it as any closed tab's lease is. Co-Authored-By: Claude <noreply@anthropic.com> * fix(ssh): keep a closed bridged tab closed across restarts even when its stop can't be fenced An unfenced legacy stop now gets one try and ends the lease, a repeated close keeps the first record's age, and the Docker bridge spec covers a close while disconnected followed by a restart. Co-Authored-By: Claude <noreply@anthropic.com> * fix(ssh): re-list after abandoning a bridged stop so the closed pane drops Co-Authored-By: Claude <noreply@anthropic.com> * fix(ssh): route CLI and worktree stops of a bridged tab through the bridge, and keep a repeated close fenced to the first identity * fix(ssh): refuse sleeping a bridged pane, settle bridged stop-and-wait on the relay's exit proof, and never attach a pane closed mid-attach * fix(ssh): settle a bridged stop-and-wait on the exit proof alone, for every overlapping waiter * fix(ssh): keep an unfenced bridged stop's pane tracked for its trailing exit report, never serving it * fix(ssh): keep awaiting a bridged stop's exit after a failed reply, never name a retired pane to the relay CLI, and require a real empty listing in e2e * fix(ssh): tell the runtime a bridged terminal exited once its stop-and-wait is proven * fix(ssh): keep an unfenced bridged stop's exit observable after its reply fails --------- Co-authored-by: Claude <noreply@anthropic.com>