MeshMonitor v4.16.0 is the first full release since 4.15.2. The headline work is reliability on large meshes, and it came straight from a packet capture.
Highlights below. The full list is in the CHANGELOG.
Large meshes stay connected β
A reporter running a mesh of roughly 190 nodes captured MeshMonitor dropping its TCP link partway through every config sync. The fix took four passes, because there were four separate faults stacked on top of each other:
- A connect timeout could outlive the attempt that armed it and then kill a healthy socket.
- The favorite write-back injected an admin packet into the middle of the NodeDB stream.
- A stalled sync had no detection at all, so it simply hung.
- Recovery was slow. The retry now ramps 3s to 10s to 30s, so a reconnect takes about 16 seconds instead of about 73.
Every socket teardown is also named now, so the next report of this shape says which one fired.
Route segments follow your map toggles β
Show RF, Show UDP and Show MQTT used to filter node markers only. They now filter traceroute route segments too.
Route segments will disappear from your maps
Show MQTT and Show UDP default to off. Nothing is deleted β turn Show MQTT on in the Map Features panel to bring the segments back. Traceroutes recorded before this release carry no transport information and are treated as RF, so they stay visible under the default toggles. See Transport filtering and route segments.
Publish your privacy terms β
Operators running a public instance can now publish a privacy policy, terms of service and contact document from inside MeshMonitor, either hosted by MeshMonitor or linked out to your own. See Privacy disclosures.
Credentials stay out of the logs β
WiFi PSKs, MQTT passwords, private keys and admin keys are no longer written to debug logs in the clear. publicKey still prints in full, by design.
And more β
A per-source unread DM badge on the Sources list, with a per-user switch to turn it off. MeshBeacon flags a received offer whose preset and region combination breaks the regulator's rules. MeshCore gains observer device stats and noise-floor telemetry from the /status topic, keeps MQTT ingest sources on every read path with a page of their own, and refreshes lastHeard on a telemetry round trip rather than only on adverts. Plus a Philadelphia MeshCore 500 preset and a long list of map, UI and configuration fixes.
Upgrade notes β
MeshCore TCP sources now default to port 5000, where the WiFi and Ethernet companion builds listen. Native-TCP builds still use 4403 β set the port explicitly when adding one.
Three migrations run on first boot (160, 161, 162). All are additive and idempotent.
Upgrade the usual way. See the CHANGELOG for the complete notes.