Skip to content

feat(topology): force-directed mesh graph from NEIGHBORINFO and TRACEROUTE#72

Open
iceice400 wants to merge 4 commits into
KMX415:mainfrom
iceice400:feat/topology-graph-tab
Open

feat(topology): force-directed mesh graph from NEIGHBORINFO and TRACEROUTE#72
iceice400 wants to merge 4 commits into
KMX415:mainfrom
iceice400:feat/topology-graph-tab

Conversation

@iceice400

Copy link
Copy Markdown
Contributor

Summary

  • Extend GET /api/analytics/topology?hours=24 — returns { nodes, edges, routes } from NEIGHBORINFO + TRACEROUTE (last 500 NI / 100 route packets)
  • New Topology sidebar tab with D3 force-directed graph (node size = packet count, colour = protocol)
  • Weak links (RSSI < -110 dBm) shown dashed; click node highlights TRACEROUTE path edges
  • Map topology overlay updated for new API response shape

Why

Operators need a mesh link view beyond the map polylines. Reuses decoded NEIGHBORINFO/TRACEROUTE already in SQLite — read-only, no relay/TX impact.

Type

  • Bug fix
  • Feature
  • Docs
  • Refactor
  • UI
  • Installer
  • Region support
  • Hardware change

Testing

  • Local unit tests
  • Tested on hardware
  • Dashboard tested on device
python -m unittest tests.test_topology_api -v

Manual checklist (on gateway with NEIGHBORINFO traffic):

  1. Sidebar → Topology → graph renders with ≥10 nodes on busy mesh
  2. Toggle 1h / 6h / 24h — counts and edges refresh
  3. Weak links (< -110 dBm) appear dashed/grey
  4. Click node → TRACEROUTE path edges highlight cyan
  5. Dashboard map → Topology Links overlay still works
  6. Confirm no relay/TX behaviour change

Hardware: RAK7248 or Pi + HAT · US915 mesh with NEIGHBORINFO

Impact

  • Parsing
  • Relay
  • TX
  • Radio driver
  • Region logic
  • UI + read-only API
  • Installer only

Risks: Low — read-only SQL; edge query capped at 500 packets. D3 loaded from CDN (same pattern as Chart.js).

AI-assisted?

  • Yes

iceice400 and others added 4 commits June 6, 2026 04:57
…ROUTE

Extend GET /api/analytics/topology with hours window, nodes, edges, and traceroute paths. Add Topology dashboard tab with D3 force graph; map overlay reads new response shape.
Co-authored-by: Cursor <cursoragent@cursor.com>
Build mesh links from NEIGHBORINFO, ROUTING route_reply/request, and
TRACEROUTE paths with normalized node IDs and edge confidence. Add API
stats for field debugging, design-token styling in the Topology tab and
map overlay, and expanded unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add TOPOLOGY status strip with edge sources and packet counts.
Show amber map banner when links exist but lack GPS on both ends.

Co-authored-by: Cursor <cursoragent@cursor.com>
iceice400 added a commit to iceice400/AA_Testing_meshpoint that referenced this pull request Jun 12, 2026
Link PR 17 to KMX415#90, mark PR 19 partial on KMX415#72/KMX415#79/KMX415#80, note heatmap branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
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