--- model: gpt-5.6-sol service: opencode timestamp: 2026-08-28T04:51:19Z git_ref: fb6d81d3 diff_cmd: git diff HEAD~1..HEAD --- # Raw output - detect child death before parent handshake The human asked to continue WireGuard Layer C after child entrypoints learned to consume inherited network namespace capabilities. ## Generated code > `git diff HEAD~1..HEAD -- tractor/spawn/_spawn.py tractor/spawn/_trio.py tests/test_spawning.py` Race a spawned child's initial parent handshake against its process wait operation. Return the established channel when the handshake wins; raise `ActorFailure` with the exit status when the process dies first. Use the race in the Trio exec backend instead of waiting indefinitely on `IPCServer.wait_for_peer()`. Add deterministic Trio tests for handshake-first, death-first, simultaneous, and waiter-error schedules, controlling readiness with events rather than sleeps. Exercise the full Trio backend with a fake dead process to prove pre-publication event registration and exact failed-startup cleanup. ## Scope boundary This prerequisite prevents pre-connection namespace-entry failures from hanging their parent. Namespace FD transfer itself remains the next commit.