mirror of
https://github.com/stablyai/orca.git
synced 2026-10-22 08:03:37 +00:00
Three conflicts, all in the ownership-critical files, and the two changes turn out to be making the same argument from opposite ends. STA-3077 made hasPty three-valued: null now means "this provider cannot answer", where before the only answers were yes and no. Its reasoning — an owner that cannot answer must stay unknown rather than become a liveness proof — is the same rule this branch applies to daemon occupancy. Both sides kept: the new signature, and the owner gate that sits above it. The gate needed no change, because `hasPty?.(id) !== true` already reads a null as "not proven" and refuses. But it needed a test. Mutating `!== true` to `=== false` left all 1525 daemon tests green: every double in the suite answers false, which makes the two predicates indistinguishable, while in production the difference is now the whole point — a null read as ownership lets the in-process fallback answer for a daemon-owned session, closing the pane while the agent runs on as an orphan. Two tests added at that boundary; the mutation is caught. pty:signal keeps both additions in the order that makes sense: their superseded-id fence first, then the routing call whose rejection is already handled.