MeshMonitor v2.9.0
๐ฏ Major Features
Mesh Traffic Monitor (#285)
A powerful new real-time packet monitoring tool that provides deep visibility into your mesh network traffic.
Core Features:
- Real-time packet logging with configurable retention (count and age limits)
- Desktop-only panel positioned at bottom of Nodes tab (automatically hidden on mobile)
- Live packet table showing Time, From/To nodes, Type, Channel, SNR, Hops, Size, and Content
- Auto-scroll with pause/resume functionality
- Advanced filtering by packet type, encryption status, node, channel, and timestamp
- Color-coded packet types for quick visual identification (15+ types supported)
- Detailed packet inspection modal with full metadata
- Clickable node IDs to center map on specific nodes
- Admin-only clear logs functionality
Performance Optimizations:
- Reduced polling interval from 2s to 5s (60% reduction in API calls)
- Reduced traceroute polling from 10s to 60s (83% reduction)
- Reduced neighbor info polling from 10s to 60s (83% reduction)
- Max limit validation (1000) to prevent unbounded queries
- Input validation for offset and limit parameters
Packet Types with Color Coding:
- TEXT_MESSAGE (blue)
- POSITION (green)
- NODEINFO (cyan)
- TELEMETRY (orange)
- TRACEROUTE (purple)
- NEIGHBORINFO (deep purple)
- ROUTING (red)
- ADMIN (pink)
- WAYPOINT (green)
- ALERT (deep orange)
- REPLY (light blue)
- And more...
Content Preview:
- Text messages: First 100 characters
- Position: Coordinates in degrees
- Telemetry: Type (Device/Environment/Power)
- NodeInfo: Node name
- Encrypted packets: ๐ indicator
Permissions:
- Requires both
channels:readandmessages:readpermissions - Clear logs restricted to administrators only
Settings:
- Enable/disable packet logging
- Configure max packet count (default: 1000)
- Configure max age in hours (default: 24)
- Toggle packet monitor visibility
โจ UI Enhancements
- Fixed packet monitor overlapping node list (#290)
- Improved packet detail modal visibility with blue border and glow effect
- Fixed dark mode colors for packet detail modal
- Fixed filter dropdown white background for dark mode readability
- Fixed map tile loading issue when packet monitor is toggled
- Removed page footer (duplicate information in sidebar)
- Enhanced modal popup styling with stronger shadows and borders
๐งช Testing
- Added comprehensive test suite for packetLogService (23 tests)
- Added integration tests for packet API routes (16 tests)
- 760 total tests passing across 39 test files
๐ง API Improvements
New Endpoints:
GET /api/packets- List packets with filtering and paginationGET /api/packets/stats- Get packet statisticsGET /api/packets/:id- Get single packet detailsDELETE /api/packets- Clear all packet logs (admin only)
Query Parameters:
limit- Number of packets to return (max 1000)offset- Pagination offsetportnum- Filter by packet typefrom_node- Filter by sender nodeto_node- Filter by recipient nodechannel- Filter by channelencrypted- Filter by encryption statussince- Filter by timestamp
๐ Bug Fixes
- Fixed node list height adjustment when packet monitor is visible
- Fixed settings persistence bug (hasChanges tracking)
- Fixed permission middleware (added optionalAuth() to packet routes)
- Fixed settings save bug (added packet monitor settings to validKeys whitelist)
- Hide "Show Packet Monitor" checkbox when packet logging is disabled
๐ฆ Dependencies
- Added paho-mqtt<2.0 for Apprise MQTT support (#287)
๐ Database Schema
New Table: packet_log
Stores packet logs with comprehensive metadata including:
- Packet ID, timestamp, from/to nodes
- Channel, port number, encryption status
- Signal quality (SNR, RSSI)
- Hop information
- Payload preview and full metadata
Settings:
packet_log_enabled- Enable/disable packet loggingpacket_log_max_count- Maximum number of packets to storepacket_log_max_age_hours- Maximum age of packets in hours
๐ Statistics
- Total commits: Multiple PRs merged
- Lines of code added: 1,800+
- New tests: 39
- Performance improvements: Up to 83% reduction in polling frequency
๐ Credits
Special thanks to all contributors and testers who helped make this release possible!
Full Changelog: v2.8.9...v2.9.0
๐ MeshMonitor v2.9.0
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v2.9.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.