MeshMonitor v4.16.1-rc1
⚠️ Release candidate. Not for production. Please test and report anything odd on Issues or Discord.
The first RC for 4.16.1, a patch release made entirely of bug fixes reported against 4.16.0. Three of them hit MeshCore. Serial sources can now be configured with a stable /dev/serial/by-id/... path, the form a Proxmox LXC USB passthrough gives you — previously that was rejected outright and the source reconnect-looped forever. MeshCore signal-to-noise values are fractional (quarter-dB), but the snr columns were 32-bit integers, so on PostgreSQL every affected message failed to persist with invalid input syntax for type integer: "-8.25", and on MySQL it silently truncated. And MeshCore Auto-Pathfinding never cancelled a run already in progress, so every reconnect stacked another concurrent run on top of the last, compounding mesh traffic until the container was restarted.
On the map, node markers are drawn at a deterministic offset inside a low-precision node's accuracy cell so same-cell markers don't stack. That is intentional, but it made pins disagree with the coordinates a node reports, and "Center on Map" panned to the reported point rather than to the marker — up to half an accuracy cell away from the pin you clicked. Centring now targets the marker, and a new Spread Nodes checkbox in Map Features turns the offset off entirely, pinning every node exactly where it said it was. It defaults on, so nothing changes unless you go looking for it.
Bug Fixes
- fix(meshcore): accept
/dev/serial/by-idandby-pathserial paths (#5174) - fix(meshcore): check the Repeater serial path too, warn-only (#5179)
- fix: widen MeshCore
snrcolumns to REAL/DOUBLE (#5176) - fix(meshcore): cancel in-flight Auto-Pathfinding runs on stop/reconnect (#5171)
- fix(map): centre on the rendered marker, add a Spread Nodes toggle (#5181)
Chores
- chore: retire the "refresh the review token on every PR" rule (#5180)
- chore(release): bump to 4.16.1-rc1 (#5187)
Issues Resolved
- #5172 — Invalid serial port format (thanks @BlueSnake830)
- #5175 — Failed to persist message:
snrinteger vs fractional (thanks @javitab) - #5177 — Nodes do not appear at the reported location (thanks @ogarcia)
- #5170 — Auto-Pathfinding in-flight runs never cancelled (thanks @pfmos)
- #5178 — Repeater connect path skipped serial-path validation
Upgrade Notes
Migrations 163 and 164 run automatically on first boot. 163 widens the two MeshCore snr columns; on PostgreSQL and MySQL that is an ALTER TABLE on meshcore_messages and meshcore_heard_repeaters, so allow a moment on a large database. SQLite is a no-op (INTEGER affinity already stored the fractional value). 164 adds user_map_preferences.spread_nodes, defaulting to true.
No breaking changes, no configuration changes required.
Note for Repeater-mode MeshCore sources: the serial path is now checked against the same allow-list the Companion path uses, but warn-only — an unrecognised path logs a warning and still connects. Nothing that works today stops working.
Full changelog: v4.16.0...v4.16.1-rc1