Files
meshstream/web
Daniel Pupius e8e1a112ab feat(topology): track mesh node connections and render as map polylines
Add passive topology tracking from four sources with confidence ranking:
- Zero-hop MQTT observations (continuous, per-gateway, highest frequency)
- Traceroute replies (RouteDiscovery, full path + SNR data)
- NeighborInfo packets (self-reported neighbor SNR)
- relay_node inferred links (1-hop packets with known relay)

Backend: add rx_snr (field 62) and rx_rssi (field 63) to meshstream Data
proto; extract from MeshPacket in decoder.go; regenerate Go bindings.

Frontend:
- topologySlice: LinkObservation model, per-direction confidence merge,
  24h TTL pruning, 2000-edge cap, Redux-pure (timestamp from payload)
- aggregatorSlice: add hopsFromGateway to NodeData
- __root.tsx: dispatch processTopologyPacket after each SSE message
- NetworkMap: render polylines colored by SNR (green/yellow/red/gray),
  dimmed at 0.4 opacity for viaMqtt edges; Links toggle button in legend
- NodeDetail: Connections section showing per-edge SNR, source badge,
  viaMqtt badge, and last-seen time

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-15 16:43:48 +00:00
..
2025-04-29 12:12:41 -07:00
2025-05-02 12:24:48 -07:00
2025-05-02 12:24:48 -07:00
2025-04-22 16:42:22 -07:00
2025-04-22 13:26:35 -07:00

Meshstream Web Interface

This is the web interface for the Meshstream application, which provides a real-time view of Meshtastic network traffic.

Technologies Used

  • Vite
  • React
  • TypeScript
  • Redux Toolkit
  • Tailwind CSS
  • Tanstack Router

Development

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Preview production build
pnpm preview

Structure

  • src/components/ - React components
  • src/routes/ - Tanstack Router route components
  • src/store/ - Redux store and slices
  • src/hooks/ - Custom React hooks
  • src/lib/ - Utility functions and API clients
  • src/styles/ - CSS styles
  • src/assets/ - Static assets like images

API

The application communicates with the Meshstream server via:

  • REST API endpoints at /api/...
  • Server-Sent Events (SSE) connection at /api/stream

See src/lib/api.ts for more details on the API client implementation.