mirror of
https://github.com/stablyai/orca.git
synced 2026-10-23 00:03:52 +00:00
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.