github Yeraze/meshmonitor v2.5.0
v2.5.0 - Channel Management & Position Visualization Enhancements

latest releases: v2.20.12, v2.20.11, v2.20.10...
2 months ago

MeshMonitor v2.5.0

๐ŸŽ‰ New Features

Channel Information Modal

  • Interactive Channel Details: Click "info" link on any channel button to view comprehensive channel information
  • Security-Focused PSK Display: Pre-shared keys are masked by default with a show/hide toggle to prevent accidental exposure
  • Complete Channel Metadata:
    • Channel name and number
    • Encryption status with visual indicators (๐Ÿ”’/๐Ÿ”“)
    • Base64-encoded PSK with masked display
    • MQTT uplink/downlink configuration (โœ“/โœ—)
    • Discovery and last updated timestamps
  • Keyboard Accessible: Press Escape to close modal
  • Performance Optimized: Memoized channel lookups prevent redundant rendering

Enhanced Channel Buttons

  • Restructured Layout: Channel info on left, status indicators on right
  • Encryption Indicators:
    • ๐Ÿ”’ for encrypted channels (PSK != AQ==)
    • ๐Ÿ”“ for unencrypted channels
    • Data-driven detection (no hardcoded channel names)
  • Refined MQTT Arrows: Smaller up/down arrows positioned on right edge
  • Quick Info Access: "info" link for immediate channel details

Map Position Visualization

  • Uncertainty Circles: Visual representation of position accuracy/confidence
    • Displayed for estimated/approximate positions
    • Transparent overlays showing uncertainty radius
    • Helps distinguish precise GPS positions from estimated locations
  • Enhanced Position Context: Better understanding of node location reliability

Messages Tab UX Improvements

  • Enhanced message display and interaction patterns
  • Improved visual hierarchy and readability
  • Better handling of message metadata

๐Ÿ› Bug Fixes

MQTT Configuration Display

  • Fixed: All channels incorrectly showed both uplink and downlink enabled
  • Solution: Now properly reads uplinkEnabled/downlinkEnabled from Meshtastic device
  • Impact: Accurate MQTT status display for each channel

PSK Storage & Encryption Detection

  • Fixed: PSK values stored as placeholder 'Set' instead of actual values
  • Solution: Store actual base64-encoded PSK from device for proper inspection
  • Impact: Correct encryption detection (AQ== = unencrypted default key)

๐Ÿ”ง Technical Improvements

Code Quality

  • Named Constants: Extracted magic string 'AQ==' to DEFAULT_UNENCRYPTED_PSK
  • Error Handling: Added try-catch for PSK buffer conversion with informative warnings
  • Type Safety: Proper TypeScript interfaces for channel data

Performance Optimizations

  • Memoized Channel Lookups: useMemo prevents redundant array searches
  • Optimized Rendering: Modal only recalculates when dependencies change

Security Enhancements

  • PSK Masking: Sensitive keys hidden by default, requires explicit user action to reveal
  • Prevents Accidental Exposure: Protects against screenshots and screen sharing leaks

Accessibility

  • Keyboard Navigation: Full Escape key support for modal dismissal
  • Standard UX Patterns: Follows accessibility best practices

๐Ÿ“ Technical Changes

Modified Files:

  • src/App.tsx: Channel info modal, state management, memoization, keyboard handlers
  • src/App.css: Modal styling, button layout, channel indicators
  • src/server/meshtasticManager.ts: PSK conversion with error handling, MQTT settings
  • src/services/database.ts: MQTT uplink/downlink storage support
  • package.json: Version bump to 2.5.0
  • helm/meshmonitor/Chart.yaml: Helm chart version updates

๐Ÿš€ Deployment

Docker Images:

docker pull ghcr.io/yeraze/meshmonitor:2.5.0
docker pull ghcr.io/yeraze/meshmonitor:latest

Helm Chart:

helm repo update
helm upgrade meshmonitor meshmonitor/meshmonitor --version 2.5.0

๐Ÿ“‹ Upgrade Notes

  • No database migrations required
  • No breaking changes
  • All existing functionality preserved
  • New channel info modal available immediately
  • MQTT settings now display correctly

๐Ÿ™ Acknowledgments

Special thanks to the automated code review process that identified security, performance, and accessibility improvements, making this release even better!


Full Changelog: v2.4.6...v2.5.0

๐Ÿš€ MeshMonitor v2.5.0

๐Ÿ“ฆ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:v2.5.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.