Parent
Part of #267 — MeshCore Phase 3 path parity. Milestone M1 of the passive packet path subsystem.
Design: ADR-0001 docs/features/meshcore/packet-path-tracing/adr/0001-meshcore-packet-path-tracing-subsystem.md
Progress/outstanding: docs/features/meshcore/packet-path-tracing/
Goal
Honest, scalable, hash-only passive path evidence. No resolver, no Neo4j, no WebSocket, no write endpoints.
Scope
Out of scope
- Hash → node resolution (M3, gated on M2 spike).
- Neo4j export (M4), realtime WS (M5), centrality (M6), UI (M7).
Acceptance criteria
Decisions (locked)
- App
meshcore_packet_path; 6-month retention with eviction job; direction = list order (not forwarding direction).
Parent
Part of #267 — MeshCore Phase 3 path parity. Milestone M1 of the passive packet path subsystem.
Design: ADR-0001
docs/features/meshcore/packet-path-tracing/adr/0001-meshcore-packet-path-tracing-subsystem.mdProgress/outstanding:
docs/features/meshcore/packet-path-tracing/Goal
Honest, scalable, hash-only passive path evidence. No resolver, no Neo4j, no WebSocket, no write endpoints.
Scope
meshcore_packet_path(or bounded package undermeshcore_packets).path_hash_size+path_hash_modeonMeshCorePacketObservation; ingest PATHrx_log_dataframes that carry path but no business message.MeshCorePathSegmentResolutionkeyed(hash_mode, hash_size, segment_hash), all rowsstatus=unknown.MeshCorePathEdgeBucket+ Celery task emitting ordered hash-to-hash edges (plus observer dimension) per ADR "Edge semantics"; checkpointed, idempotent;manage.pybackfill.GET /api/meshcore/path-tracing/edges/; direction labelled "list order"; documented inopenapi.yaml.Out of scope
Acceptance criteria
Decisions (locked)
meshcore_packet_path; 6-month retention with eviction job; direction = list order (not forwarding direction).