Files
orca/src
0321357c66 fix(agents): the wake sweep no longer forks sessions owned by a disconnected SSH pane or a stale-workspace record (#29454)
* fix(agents): stop the wake sweep from forking sessions that live SSH panes still own

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(agents): only treat an ssh-bound leaf as owned while its target is unreachable

A connected target's live-PTY map is authoritative: sleep kills the PTY but keeps
its id. Cross-worktree session dedupe ignores finished and invalid records, the
same records claim-key dedupe skips.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(agents): use the tab pty only for a single-leaf layout when judging ssh ownership

In a split tab the tab-level pty can belong to another leaf.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test: route wake-sweep fixtures through one checked store setter

* fix(agents): a record whose host moved can't claim a session in the wake sweep

* fix(agents): a cross-workspace claim must name the same machine as the record

* fix(agents): resolve each record's machine from its own catalog or stamp evidence

* fix(agents): judge a cross-workspace claim's host from owner rows, not the focused server

The focus-read ratchet rejects new reads of the routing default; comparing two
records' machines needs only each record's own workspace owner row.

* fix(agents): resolve a folder workspace's host before it can claim a session

---------

Co-authored-by: Robert Nisipeanu <github@nisipeanu.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-10-15 23:40:40 -07:00
..