mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-07 03:15:56 +00:00
Without a swarm manager the mesh planner only built full meshes, whose handshake gate waits for every peer, so laptops behind NAT could not join. An inventory may now name a hub in networks.hub: the planner builds every declared mesh around it, the hub forwards between its spokes, a spoke marked networks.roaming gets no endpoint in the hub's peer list and dials the hub with PersistentKeepalive, and the hub's gate skips roaming spokes while a roaming spoke gates only on the hub. The mesh CLI takes the hub's public address per host (--endpoint) and a vault password per host (--host-vault-password-file). Full meshes and the swarm manager hub plan exactly as before; NETWORK_MESH_POOL keeps the operator's subnet. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>