2.2 KiB
Prompt
After committing the reviewed bindspace/interface stack, the human asked to continue with the next established Layer C step.
Response summary
Retained a serializable realized BindspaceRef on frozen tunnelled address declarations without carrying the process-local Bindspace capability. The namespace API remains tuple-shaped, using the declared key before realization and stable inode afterward. Existing transport peeling and unrealized serialization remain unchanged.
Files changed
tractor/discovery/_tunnel.py- realized bindspace-ref retention and immutable annotation method.tests/discovery/test_tunnelled_addr.py- ref, compatibility and mismatch coverage.tests/ipc/test_server_tunnel_boundary.py- real listener diagnostic coverage for the realized inode.ai/tpt-backends/03_wg_tunnel_bindspace.md- realized namespace visibility contract.
Human edits
The human accepted and committed the preceding reviewed composition boundary, then requested the next step. Their stated preference for end-to-end tests informed use of the existing real TCP listener path to verify endpoint/server diagnostics, while focused unit coverage handles metadata invariants without pyroute2 overhead. During review, the human chose the final unshipped terminology: BindspaceRef for the serializable non-owning reference, Bindspace for the live process-local capability, .ref for that capability’s reference, and bindspace_ref at the tunnel declaration API. They then requested the prerequisite model rename as a separate commit before this feature. The human also replaced the module-level helper with TunnelledAddress.with_bindspace_ref() and requested inline msgspec encode/decode expressions in the serialization assertions. The human chose not to add a second typed .namespace projection, and requested native tagged TunnelledAddress decoding remain as a separate design-plan follow-up. The agent applied those human-directed changes; no direct manual source edits were observed.