Paul Payne
526736f778
feat(mesh): cross-node routing + presence breaker (Phase 3)
- NodeConfig.address: routable host peers proxy to (wired registry + wire)
- compute_routes emits 'remote' routes for consumed peer services
(local requires ref satisfied by an online peer -> <address>:<port>)
- _host_remote_block: fail-fast reverse_proxy (2s dial, passive health);
presence expiry removes the route entirely = the primary circuit-breaker
- mesh_gateway.py: API re-renders + reloads the Caddyfile on mesh change,
iff content changed (no-op until a cross-node service is consumed)
- tests: route emit / address fallback / breaker-absent / unconsumed
Logic verified hermetically + against primer's real registry (castle-api ->
primer:9020); live integration proven a no-op on civil.
2026-07-07 05:38:15 -07:00
..
2026-02-22 22:54:38 -08:00
2026-07-01 10:23:03 -07:00
2026-07-06 02:25:05 -07:00
2026-07-06 16:57:29 -07:00
2026-07-07 05:38:15 -07:00
2026-07-06 02:25:05 -07:00
2026-07-06 23:02:33 -07:00
2026-07-06 02:25:05 -07:00
2026-07-04 23:04:26 -07:00
2026-07-06 02:25:05 -07:00
2026-07-07 05:03:07 -07:00
2026-07-05 10:55:42 -07:00
2026-07-06 02:25:05 -07:00
2026-07-06 02:25:05 -07:00
2026-07-04 23:04:26 -07:00
2026-07-06 04:00:24 -07:00
2026-06-30 18:18:47 -07:00
2026-07-07 05:08:16 -07:00
2026-07-05 19:17:23 -07:00
2026-07-06 23:02:33 -07:00
2026-07-05 19:17:23 -07:00
2026-07-01 10:23:03 -07:00