Skip to content

feat(kerykeion): node discovery, mesh topology graph, and peer tracking#60

Merged
forkwright merged 1 commit intomainfrom
p2-03/node-discovery-topology
Mar 22, 2026
Merged

feat(kerykeion): node discovery, mesh topology graph, and peer tracking#60
forkwright merged 1 commit intomainfrom
p2-03/node-discovery-topology

Conversation

@forkwright
Copy link
Owner

Summary

  • Add MeshTopology backed by petgraph StableGraph with SNR-weighted directed edges, Dijkstra shortest-path, connected component detection, and JSON snapshot persistence
  • Add PacketProcessor dispatching NODEINFO, POSITION, TELEMETRY, NEIGHBORINFO, TRACEROUTE, and ROUTING packets with passive link learning from packet metadata
  • Add active/passive node discovery manager with periodic traceroutes, stale node lifecycle (Active→Stale→Offline→Removed), and partition detection
  • Add MeshEventGeoSignal conversion for the broadcast channel using existing MeshDetail variants with metadata discrimination
  • Add GatewayDetector with manual config + auto-detection from ROUTER_CLIENT role and wifi/MQTT status, best-gateway scoring by hop distance and SNR
  • 40+ new tests across all modules

Test plan

  • cargo fmt --all — clean
  • cargo clippy --workspace --all-targets -- -D warnings — clean
  • cargo test --workspace — 457 tests pass (100 in kerykeion)
  • cargo test --workspace --doc — clean
  • CI passes on GitHub Actions

Add petgraph-backed mesh topology with SNR-weighted edges, packet
processor dispatching NODEINFO/POSITION/TELEMETRY/NEIGHBORINFO/
TRACEROUTE packets, active+passive node discovery with stale detection,
MeshEvent→GeoSignal conversion, and gateway auto-detection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

⚠️ Large PR detected — 10 files, 2090 lines changed.

Consider splitting into smaller PRs for easier review. Not a blocker, just a signal.

@forkwright forkwright merged commit 570ef34 into main Mar 22, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant