MeshTopology
Incremental mesh topology graph built from NeighborInfo reports.
Usage:
val topology = MeshTopology()
topology.addNeighborInfo(neighborInfo)
val path = topology.shortestPath(nodeA, nodeB)
val neighbors = topology.getNeighbors(nodeA)Thread-safe — all mutations and reads are guarded by an internal Mutex, so this class is safe to call concurrently from any coroutine context. This is a consumer-side utility; it is not used inside the engine actor's hot path and therefore does not violate the single-writer invariant (ADR-002).
The graph is directed — if node A reports node B as a neighbor, that's a directed edge A→B. Undirected queries consider both directions.
Types
Functions
Ingest a NeighborInfo report, replacing all edges from the reporting node.
Get all edges in the topology graph.
Get all outgoing edges from a node (nodes it reported as neighbors).
Check if there's a direct edge in either direction between two nodes.
Remove a node and all edges referencing it.