Convert plain function declarations inside component body to useCallback
with correct deps, eliminating the eslint-disable-react-hooks banner.
Extract buildMarkerContent to module level (pure, no state/refs).
Reorder fitMapToBounds before resetAutoZoom to avoid TDZ reference.
Replace innerHTML SVG in marker with DOM-API construction.
Replace showInfoWindow innerHTML template with .textContent DOM APIs
to eliminate XSS risk from node name/status fields.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove unused mustParseDuration from main.go
- Replace http.Error calls after SSE headers with plain returns;
skip bad packets instead of killing the stream on marshal error
- Change processedPackets/seenPackets from boolean to timestamp values
and prune entries older than 24h on each packet to prevent unbounded
memory growth in long-running sessions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers link inference from traceroute, zero-hop MQTT, NeighborInfo,
and relay_node fields. Includes multi-gateway correlation, hop bounding,
SNR-colored polyline rendering on the map, and node detail connections.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Split routers on dashboard and extend retention periods
- Add Router node type with 12-hour stale timeout (vs 30 min for regular nodes)
- Create RouterList component to display router nodes separately
- Update NodeList to filter out routers (similar to gateways)
- Add yellow color scheme for router nodes to distinguish from gateways (green) and nodes (blue)
- Extend mesh traffic retention across the board:
- Client-side packet age filter: 12h → 24h
- Broker cache size: 50 → 200 packets
- Messages per channel: 100 → 500
* Update regular node activity threshold to 60 minutes
* Fix TypeScript errors in router filtering logic
* Fix docker-build to use buildx explicitly with --load flag
* Add default empty value for MESHSTREAM_GOOGLE_MAPS_API_KEY in docker-build
* Restructure docker buildx command to fix path argument parsing
* Remove trailing backslash before build context path in docker-build
* Quote build args and separate path argument in docker-build
- Added new web/ directory for frontend development
- Created fixtures/ subdirectory with JSON test data
- Added samples for all major packet types (text, position, nodeinfo, etc.)
- Added README files with documentation
- Added placeholder package.json
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Refactored decoder to use protobuf-defined Packet, TopicInfo, and Data structures
- Updated MQTT client and broker to work with protobuf structures directly
- Improved logging to properly serialize protobuf messages for structured output
- Optimized .logista.yaml template for cleaner, more compact log display
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix timestamp field from timestamp to ts
- Add proper packet structure parsing based on sample logs
- Add special visualization for Node Info packets
- Add special visualization for Telemetry packets with DeviceMetrics
- Format uptime in human-readable hours
- Add fallback for unknown packet types with pretty printing
- Handle both packet and non-packet log entries
- Add .logista.yaml configuration for prettier log output
- Add github.com/dpup/logista as a go tool
- Update Makefile run target to pipe output through logista
- Configure the format to show timestamp, level, and message with colors
- Add special formatting for different message types
- Display telemetry and position data in readable format
- Add table display for remaining structured fields
- Add message type prefix in brief mode for quick identification
- Include GatewayID in brief mode summary
- Remove formatted output from structured fields
- Use proper structured fields for each message type
- Add common fields like hopLimit and ID for all messages
- Extract specific data for position, telemetry, and text messages
- Format structured data for better log aggregation compatibility