1.3 KiB
Raw output - transport bindspace FD through Trio spawn
The human approved the next WireGuard Layer C increment after landing pre-handshake child-death detection.
Generated code
git diff HEAD~1..HEAD -- tractor/_child.py tractor/runtime/_supervise.py tractor/spawn/_spawn.py tractor/spawn/_trio.py tractor/spawn/_mp.py tractor/to_actor/_api.py tests/test_netns_spawn.py
Thread an optional live Bindspace through actor spawn APIs. For the Trio backend, duplicate its namespace FD, append that temporary descriptor to existing pass_fds, and send the atomic descriptor/inode pair through the child CLI. Close the parent temporary duplicate as soon as open_process() returns, raises, or is cancelled, while the child consumes its inherited descriptor before runtime startup.
Reject bindspace transport explicitly in multiprocessing backends until their descriptor-reduction slice is implemented. Add privilege-free tests for CLI forwarding, merged pass-FD state, caller immutability, source/duplicate ownership, exec failure, cancellation, absent live authority, death-before-handshake cleanup, and MP rejection.
Scope boundary
Multiprocessing FD reduction and root-process namespace entry remain follow-up work.