Files
orca/.github/workflows
Jinwoo-H 7ab1622a6a fix(ssh): require positive evidence before releasing a relay socket
Round-three review, all of it reproduced first.

Refused connects are not absence. A live Unix listener whose accept backlog is
full also answers ECONNREFUSED — 199 of 200 simultaneous connects to a live
listener with backlog 1 — so counting refusals was still an inference, which is
the exact reasoning this change exists to remove. The unlink now additionally
requires an owner inventory that ran and did not list the path: /proc/net/unix
where it exists, otherwise an lsof that ran and matched nothing. With neither the
answer is unverifiable and the socket stays. Verified in a Linux container with
no lsof: a saturated live listener reports LIVE and keeps its socket, a genuinely
stale inode is released.

The identity guarding the unlink now carries ctime alongside dev and ino, since
inode numbers are recycled — the same identity relay.ts already uses.

Reset kept its own hole: a lookup that returned nothing was read as absence even
when it had simply been unable to look. It now asks an inventory, and only
removes the socket when one ran and reported the path unheld.

A wrapped version mismatch stays terminal instead of spending the six-attempt
relay-lost backoff on a version the daemon cannot change.

Adds the live journey both reviewers asked for: a real daemon holding a real PTY,
a credential rotated the way an interrupted deploy rotates it, and the shipping
launchRelay refusing to displace it. That test fails with the guard reverted.

CI fixes: the ownership job now installs the node native runtime, without which
the oracle's pty.spawn had nothing to spawn; the harness anchors its disconnect
wait to a log offset rather than matching a readiness probe's own close line, and
sweeps daemons started by the production path, not just the ones it spawned.
2026-08-18 03:44:12 -04:00
..