tractor/tractor/discovery
Gud Boi 41e7bb61c6 Add `TunnelledAddress` wrapper primitives
Introduce the first layer-A address type from the `wg` bindspace
plan without treating a transparent tunnel as a `MsgTransport`.

Deats,
- add frozen `WGTunnelSpec` and `TunnelledAddress` structs which
  delegate proto identity, bindspace, validity and wire
  serialization to their overlay
- add `strip_tunnels()` and `tunnels_of()` for nested wrappers
- recognize wrappers in `is_wrapped_addr()` while keeping them out
  of `_address_types`
- cover delegation, namespace fallback and nested peeling semantics

Also,
- widen `Address.namespace` ids for named netns
- export the new discovery API
- clarify that tractor's layer-C bindspace lifecycle may provision
  the kernel-owned bearer without making it a `MsgTransport`

Prompt-IO: ai/prompt-io/opencode/20260818T021729Z_d9a6e2e9_prompt_io.md

(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
2026-08-29 22:00:16 -04:00
..
__init__.py Add `TunnelledAddress` wrapper primitives 2026-08-29 22:00:16 -04:00
_addr.py Add `TunnelledAddress` wrapper primitives 2026-08-29 22:00:16 -04:00
_api.py Move registrar probes to `discovery._api` 2026-08-14 18:43:36 -04:00
_multiaddr.py Keep lazy annotations runtime-resolvable 2026-08-12 20:52:15 -04:00
_registry.py Fix misc bugs caught by Copilot review 2026-04-14 19:54:15 -04:00
_tunnel.py Add `TunnelledAddress` wrapper primitives 2026-08-29 22:00:16 -04:00