github Yeraze/meshmonitor v4.16.0-rc5

pre-release4 hours ago

MeshMonitor v4.16.0-rc5

⚠️ Pre-release. This is a release candidate for 4.16.0. It does not carry the :latest Docker tag. Please report anything you hit against the 4.16.0 milestone.

Nine issues fixed since rc4, weighted heavily toward MeshCore stability. The headline is a crash: a code=142 frame from a native MeshCore source could reject with no argument, and the resulting TypeError inside the catch block became an unhandled rejection that terminated the whole process — supervised restarts made it look like nothing more than a brief 503. MeshCore also gains two RepeaterStats counters the pinned library had been silently truncating, a corrected Companion queue depth (it had been reading the low byte of the error counter), and an end to false "inactive node" alerts for nodes that answer telemetry polls but rarely advert. Two meshcore_mqtt regressions are fixed: those sources were excluded from dashboard nodes and rendered the Meshtastic app shell instead of a MeshCore page. On the Meshtastic side, Traffic Management is rebuilt on the 2.8 non-zero-enables schema — nine controls that silently did nothing against 2.8 firmware are gone, and the settings that remain are documented as "0 disables". The Helm chart repository is repaired: every previously released archive it advertised had been 404ing, and older releases are downloadable again. Rounding out the release, chart panels no longer overflow the viewport in portrait on mobile, and received MeshBeacon offers now warn when the advertised region and preset are regulatorily non-compliant.

Bug Fixes

  • MeshCore: guard the unhandled-rejection crash from bare library rejects — #5104 (fixes #5102)
  • MeshCore: decode the RepeaterStats and Core stats fields the pinned library dropped — #5127 (fixes #5125)
  • MeshCore: refresh lastHeard on a telemetry round-trip, not just adverts — #5132 (fixes #5131)
  • MeshCore MQTT: give ingest sources their own page, and let data routes reach them — #5098 (fixes #5096)
  • MeshCore MQTT: route ingest sources through every MeshCore read path — #5095 (fixes #5094)
  • Config: move Traffic Management to the v2.8 non-zero-enables schema — #5128 (fixes #5123)
  • Helm: re-fetch previously published chart archives on redeploy — #5120 (fixes #5119)
  • Telemetry UI: stop chart panels overflowing the viewport in portrait — #5133 (fixes #5093)
  • TCP: scope the connect timeout to its own attempt and name every teardown — #5130

Features

  • Beacons: warn on regulator-non-compliant preset/region combinations in received offers — #5129 (closes #5103)

Dependencies

  • Production group with 9 updates — #5106
  • Development group with 4 updates — #5105
  • express-rate-limit 8.6.2 → 8.7.0 — #5113
  • @tanstack/react-query 5.101.4 → 5.102.8 — #5116
  • lucide-react 1.35.0 → 1.40.0 — #5117
  • morgan 1.11.0 → 1.12.0 — #5111
  • @typescript-eslint/eslint-plugin#5115
  • puppeteer 25.8.0 → 25.10.0 — #5109
  • docker/setup-qemu-action 4.2.0 → 4.3.0 — #5112
  • actions/deploy-pages 5.0.0 → 5.0.1 — #5110
  • softprops/action-gh-release 3.0.2 → 3.0.3 — #5108

Issues Resolved

  • #5093 — Node Info chart panels overflow horizontally in portrait
  • #5094meshcore_mqtt sources excluded from dashboard nodes
  • #5096meshcore_mqtt sources render the Meshtastic App shell
  • #5102 — Native MeshCore code=142 frame crashes MeshMonitor
  • #5103 — MeshBeacon: warn on non-compliant preset/region combos
  • #5119 — Helm repository index references non-existent files
  • #5123 — TrafficManagement config UI still on the v2.7.22 schema
  • #5125 — MeshCore remote stats: dropped counters and misread queue depth
  • #5131 — MeshCore inactive-node alerts firing for active nodes

Still Open

#5122 (repeated disconnects during initial config sync on a large mesh) is not resolved by this release. #5130 removes a latent bug that matches the reported fingerprint — a connect timeout that could outlive its own attempt and destroy a later, healthy socket with nothing logged — and adds attribution logging to every deliberate socket teardown plus config-sync progress reporting. The root cause of the original report remains unconfirmed. If you are affected, rc5 will produce log lines that identify which teardown path closed the connection and how far the NodeDB sync had progressed; please attach those to the issue.

Upgrade Notes

Traffic Management (firmware 2.8+ only). The nine removed controls — Enable Traffic Management, the four per-feature Enable toggles, Precision Bits, and the three Hop Limit Exhaustion switches — no longer appear in the UI. They had no effect on 2.8 firmware, which treats their protobuf tags as reserved. Each remaining setting is enabled by giving it a non-zero value and disabled by setting it to 0. Position dedup precision now comes from the channel's own Position Precision setting.

Helm users. Previously released chart archives are downloadable again. The recovered archives were rebuilt from their release tags, so their digests differ from what the old index recorded; helm repo update picks up the new index and helm install verifies against it, so no action is needed.

Full changelog: v4.16.0-rc4...v4.16.0-rc5

🚀 MeshMonitor v4.16.0-rc5

📦 Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.16.0-rc5

🧪 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.