github Yeraze/meshmonitor v2.9.0
v2.9.0 - Mesh Traffic Monitor & UI Improvements

latest releases: v2.21.9, v2.21.8, v2.21.7...
2 months ago

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:read and messages:read permissions
  • 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 pagination
  • GET /api/packets/stats - Get packet statistics
  • GET /api/packets/:id - Get single packet details
  • DELETE /api/packets - Clear all packet logs (admin only)

Query Parameters:

  • limit - Number of packets to return (max 1000)
  • offset - Pagination offset
  • portnum - Filter by packet type
  • from_node - Filter by sender node
  • to_node - Filter by recipient node
  • channel - Filter by channel
  • encrypted - Filter by encryption status
  • since - 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 logging
  • packet_log_max_count - Maximum number of packets to store
  • packet_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.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.