## Parent Part of **[#267](https://github.com/pskillen/meshflow-api/issues/267)**. Milestone **M4**. ## Goal Graph backend for topology + centrality, isolated from Meshtastic traceroute. ## Scope - [ ] Export `MeshCorePathEdgeBucket` → **new `PATH_OBSERVED`** relationship (separate from `ROUTED_TO`) with `protocol`, `evidence`, `weight`, `resolved`, bucket props. - [ ] Generalized node key (`mc:<internal_id>` / `mc_hash:<size>:<hash>`); do **not** reuse the MT integer `node_id`. - [ ] Async + idempotent from rollups only (never per-observation); `manage.py` bulk export. ## Acceptance criteria - [ ] Re-export is idempotent (MERGE on stable key). - [ ] MT `ROUTED_TO` graph + heatmap untouched. ## Decisions (locked) - New `PATH_OBSERVED` relationship type.
Parent
Part of #267. Milestone M4.
Goal
Graph backend for topology + centrality, isolated from Meshtastic traceroute.
Scope
MeshCorePathEdgeBucket→ newPATH_OBSERVEDrelationship (separate fromROUTED_TO) withprotocol,evidence,weight,resolved, bucket props.mc:<internal_id>/mc_hash:<size>:<hash>); do not reuse the MT integernode_id.manage.pybulk export.Acceptance criteria
ROUTED_TOgraph + heatmap untouched.Decisions (locked)
PATH_OBSERVEDrelationship type.