What's New in v1.8.0
Router Node Visualization
- Radio Tower Icons: Router nodes (role 2) now display distinctive radio tower icons with visible white circular backgrounds, making them easy to identify on the map
- Icon Variants: Both regular and selected states for router icons
Traceroute Path Improvements
- Separated Forward/Return Paths: Forward and return traceroute paths are now rendered separately with distinct visual patterns
- Forward path: Solid pink line
- Return path: Dashed pink line
- Directional Arrows: Small arrows along paths clearly indicate packet flow direction
- Corrected Path Direction: Fixed path rendering logic to properly display intermediate hops in the correct order
- Full Node Names: Popups now display complete node names instead of short names for better clarity
- Global Route Overlay: All traceroutes are correctly visualized on the map with proper direction
Code Quality & Maintainability
- Refactored Utilities: Extracted map icons and helper functions into separate utility files
- Reduced Complexity: App.tsx reduced from 2389 to 2280 lines for improved maintainability
- Performance Limits: Added global arrow count limit (50) to prevent performance issues
- Type Safety: Improved parseInt usage with radix parameter and NaN validation
Technical Details
- Added
src/utils/mapIcons.tsfor icon definitions - Added
src/utils/mapHelpers.tsxfor arrow generation and role parsing - Arrow generation uses atan2 for accurate angle calculation with 180° offset
- Path visualization correctly handles reverse-ordered intermediate hops
Full Changelog: v1.7.0...v1.8.0
🚀 MeshMonitor v1.8.0
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v1.8.0🧪 Testing
✅ All tests passed
✅ TypeScript checks passed
✅ Docker images built for linux/amd64, linux/arm64, linux/arm/v7
📋 Changes
See commit history for detailed changes.