MeshMonitor v4.15.2-rc3
⚠️ Pre-release (release candidate). For testing ahead of the 4.15.2 final. Docker
:latestis not updated by this build.
Summary
This RC builds on rc2 with a mix of MeshCore reliability fixes, map/UX improvements, and the Device Health automation work. On the reliability side, MeshCore forward-path (set_out_path) writes are now confirmed by re-reading the device contact rather than trusting the tag-less companion ack, fixing paths that silently failed on WiFi-connected companions (#4631), and LogRxData receptions are correlated by identity instead of hop count so slow USB companions no longer lose scope/route/SNR (#4883). MeshCore repeaters and room servers get their own configurable age window so they stop vanishing from the map between infrequent adverts (#4899), and per-node neighbour retrieval plus device-health trigger parity round out the MeshCore feature set. The Map Analysis toolbar is reorganised into labeled dropdown menus to fit narrower screens (#4871), the Unified/Dashboard map gains a Zoom-to-Fit control (#4898), and the MeshCore conversation view puts scope-override and toolbar controls on one row (#4888). The GNSS constellation overlay picks up event-loop yielding, more robust TLE parsing, and a corrected time anchor (#4797). Rounds out with a translations refresh and routine dependency bumps.
Features
- MeshCore infrastructure age timeout — a separate, configurable age window for repeaters/room servers so fixed infrastructure doesn't age off the Nodes list or map (#4901, closes #4899)
- Map Analysis grouped toolbar — the layer/tool controls collapse into labeled dropdown menus with active-count badges (#4886, closes #4871)
- Zoom to Fit on the Unified/Dashboard map (#4902, closes #4898)
- MeshCore device-health trigger parity for the automation engine (#4887, part of #4558)
- MeshCore conversation toolbar — scope-override and conversation controls on one horizontal row (#4889, closes #4888)
Bug Fixes
- MeshCore
set_out_path— verify the forward-path write by device read-back instead of the uncorrelatedOk/Errack, fixing paths that never set on WiFi companions (#4906, closes #4631) - MeshCore
LogRxData— correlate receptions by node identity, not hop count, so slow USB companions (T-Echo) keep scope/route/SNR (#4905, closes #4883)
Perf / Robustness
- GNSS overlay — DOP grid yields to the event loop,
parseTleTextresyncs past stray lines, and the DOP time scrubber anchors to the real wall clock (#4904, closes #4797)
i18n
- Translations update from Hosted Weblate (#4850)
Dependencies
- i18next 26.3.6 → 26.4.0 (#4895), lucide-react 1.31.0 → 1.33.0 (#4896), production-dependencies group (13) (#4891), development-dependencies group (3) (#4890), codeql-action group (4) (#4892), @vitejs/plugin-react 6.0.5 → 6.1.0 (#4893), puppeteer 25.7.0 → 25.8.0 (#4897), docker/setup-buildx-action 4.2.0 → 4.3.0 (#4894)
Issues Resolved
#4631, #4797, #4871, #4883, #4888, #4898, #4899, and #4558 (device-health parity phase)
Full changelog: v4.15.2-rc2...v4.15.2-rc3
🚀 MeshMonitor v4.15.2-rc3
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:4.15.2-rc3🧪 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.