mirror of
https://github.com/dpup/meshstream.git
synced 2026-05-04 12:32:22 +02:00
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>
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 componentssrc/routes/- Tanstack Router route componentssrc/store/- Redux store and slicessrc/hooks/- Custom React hookssrc/lib/- Utility functions and API clientssrc/styles/- CSS stylessrc/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.