--- model: gpt-5.6-sol service: opencode timestamp: 2026-08-26T00:34:30Z git_ref: 6dd39da0 diff_cmd: git diff HEAD~1..HEAD --- # Raw output - own WireGuard interface lifecycle After committing explicit peer configuration, the human authorized the next incremental lifecycle change. > `git diff HEAD~1..HEAD -- tractor/discovery/_tunnel.py tractor/discovery/__init__.py tests/discovery/test_wg_iface_lifecycle.py ai/tpt-backends/03_wg_tunnel_bindspace.md` Added owned async `open_wg_iface()` lifecycle with role-policy validation before side effects. Listen bearer ports configure the local listener; dial bearers fill omitted endpoints only for the selected maddr peer. Pyroute2 worker code creates the WireGuard link, assigns local addresses, configures private key/listen port and every explicit peer, raises the link, and removes it on exit. Partial create failures clean up synchronously; async create/remove calls are cancellation-shielded. Privileged operations are faked in tests. Ruff and lock checks passed; focused WG lifecycle/config/inspection coverage passed 22 tests. A broad unrelated registrar cancellation parameter timed out after 76 passes and 2 xpasses; its isolated rerun passed.