What's New in 3.9.0
Key Mismatch Detection & Immediate Purge (#2243, closes #2227)
Proactively detects when a mesh node broadcasts a different public key than what's stored locally. When a mismatch is found, MeshMonitor can automatically purge the stale entry from your connected device to trigger re-discovery with the correct key.
- Mismatch detection: Compares mesh-received NodeInfo keys against stored keys in real-time
- Immediate Purge toggle: Optionally purge mismatched nodes on detection instead of going through the exchange retry cycle
- Activity log enhancements: Old/new key fragments and retry counts displayed in the Automation page activity log
- Security Tab: New Key Mismatch Events section showing mismatch history with status indicators
- Channel-based exchanges: NodeInfo exchanges for key repair are sent on the node's channel (not DM), since PKI-encrypted DMs fail when keys are mismatched
- Supports all three database backends (SQLite, PostgreSQL, MySQL)
Map Visualization UI Overhaul (#2237)
Major refresh of the map interface with improved usability and visual consistency. Thanks to @NearlCrews for his work on this!
- Consolidated map legend: Merged position history legend into a single collapsible panel showing hop colors, link types, SNR quality, and position history gradient
- Node hover isolation: Hovering a node marker dims unrelated route/neighbor lines to trace paths per node
- Zoom-adaptive filtering: Poor/unknown SNR route segments and neighbor lines auto-hide at low zoom levels
- Standardized overlay panel styling: All panels now share consistent Catppuccin-themed styling
- Tileset selector redesign: Responsive 3-column grid layout replacing the old horizontal row
- Improved touch detection: Uses CSS media queries for accurate laptop+touchscreen handling
Bug Fixes
- Node uptime not showing on PostgreSQL/MySQL backends (#2242)
- Draggable overlay gets stuck off-screen on window resize (#2241)
- Map preferences not saving on PostgreSQL/MySQL backends (#2239)
Full Changelog: v3.8.8...v3.9.0
๐ MeshMonitor v3.9.0
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:3.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.