2.5 KiB
Raw output - native WireGuard maddr integration
The human requested completion of the five-step tunnelled-maddr slice: port the proven WireGuard parser, delegate to py-multiaddr’s native tunnel APIs, integrate public parse and composition entry points, add regressions, and return atomic commit plans after completing the batch.
Generated code
git diff HEAD~1..HEAD -- tractor/discovery/_tunnel.py tractor/discovery/_multiaddr.py tractor/discovery/_addr.py tractor/discovery/__init__.py
Added strict WireGuard standard-base64/multibase key codecs and native WG maddr parsing/composition. Nested stacks peel the last /wg/ repeatedly with .decapsulate_code(), isolate segments through .split()/.join(), and compose recursively with .encapsulate(). Public discovery parsing, wrapping, endpoint-table parsing, and maddr composition now preserve TunnelledAddress metadata locally.
git diff HEAD~1..HEAD -- pyproject.toml uv.lock
Declared py-multibase directly and pinned the unreleased py-multiaddr#108 WG codec revision in distribution metadata. Enabled Hatch direct-reference metadata so editable, wheel, and sdist builds use the same dependency contract.
git diff HEAD~1..HEAD -- tests/discovery/test_multiaddr.py tests/discovery/test_tunnelled_addr.py
Added key-codec, single/nested WG round-trip, malformed key, invalid bearer/overlay, missing codec, missing bearer, wrap_address(), and parse_endpoints() coverage while retaining plain TCP/UDS regressions.
git diff HEAD~1..HEAD -- examples/multihost/wg_lan ai/tpt-backends/03_wg_tunnel_bindspace.md
Removed the duplicate example parser, migrated callers to production TunnelledAddress, retained only explicit wg(8) verification, and updated dependency and future bindspace ownership documentation.
Verification
- focused discovery files:
45 passed - discovery and IPC suites:
81 passed, 2 xpassed - full suite:
443 passed, 9 skipped, 7 xfailed, 4 xpassed - collection:
462 tests - Ruff: clean
- sdist and wheel builds: successful
Review corrections
A review caught that [tool.uv.sources] alone would not constrain built-package consumers to a WG-capable py-multiaddr revision. The dependency was moved into PEP 621 metadata and the parser now converts missing-codec failures into an actionable tractor error without misclassifying Unix paths containing a wg directory.