Skip to content

v4.12.5

Latest

Choose a tag to compare

@Yeraze Yeraze released this 06 Jul 21:37
e227c98

MeshMonitor v4.12.5

This release completes the MeshCore Virtual Node command surface: a companion app (meshcore-flutter) connected to a MeshMonitor Virtual Node can now do nearly everything it could against a physically-attached node. Building on 4.12.4's config forwarding, the app can now send self-adverts, log in to remote nodes, trace paths, and request LPP telemetry — each relayed to the real node with the correct Sent→async-push handshake and correlated the way the app expects — and the node's raw RX feed is bridged to apps as a LogRxData push so channel-finder and packet-inspection tools work through the VN. All of this was validated end-to-end against live hardware. On the LoRa side, the modem-preset picker now filters presets that would be illegal for the selected region and warns when picking a licensed amateur-radio region, with RegionCode values 33–37 added. A batch of MeshCore fixes lands too: clock sync now sets the repeater to the real current time, repeater SNR is scaled correctly (quarter-dB /4), a saved static position no longer clobbers live GNSS fixes, and initial auto-connect retries with backoff. Rounding it out: per-node free-text notes, conversation content search, an automation MeshCore scope condition, a guard against a bad saved regex bricking automations, plus dependency and translation updates.

Features

  • MeshCore Virtual Node — app can send adverts, log in, trace paths, and request telemetry (#3904): SendSelfAdvert (#3959); SendLoginLoginSuccess, SendTracePathTraceData, SendTelemetryReqTelemetryResponse (#3961). Hardware-validated.
  • MeshCore Virtual Node — raw RX feed bridged to apps as a LogRxData(0x88) push (#3964, closes #3963).
  • LoRa region legality — filter modem presets by region legality (#3936) and warn on licensed amateur-radio regions (#3930) (#3924).
  • Nodes — per-node free-text notes field (#3932, closes #3921).
  • Messages — search conversations by content, extended to MeshCore DMs (#3931, #3935, closes #3922).
  • MeshCore packet-log export — decode unencrypted packet data (#3939, closes #3937).
  • Automation — MeshCore scope condition + self-origin guard (#3920, closes #3914).

Bug Fixes

  • MeshCore: clock sync now sets the repeater to the real current time (#3957, closes #3954).
  • MeshCore: repeater SNR was reported 4× too high — now scaled by /4 (#3956, closes #3955).
  • MeshCore: static contact position no longer clobbers live GNSS telemetry fixes (#3909).
  • MeshCore: initial auto-connect now retries with backoff (#3919).
  • Automation: a stored bad filterNameRegex can no longer brick automations (#3938, closes #3934).
  • Automation: send/request actions can now reach MeshCore sources (#3917, closes #3915).
  • Config: add RegionCode values 33–37 + fix ITU2_2M label (#3928, closes #3927).
  • Map: show direct-heard SNR in the node hover tooltip (#3929, closes #3925).
  • Dashboard map: collapse toggle for the Features panel (#3913, closes #3912).
  • Hardware: rename hwModel 128 to MESH_TRACKER_X1 (#3958, closes #3952).
  • PirateWeatherADV example script: "read operation timed out" under Timed Events — timeouts bumped, 30s kill-timeout docs corrected (#3942).

Dependencies

  • Bumped the production-dependencies group (8 updates) plus @types/node, globals, @typescript-eslint/parser, puppeteer, and tsx (#3945, #3946, #3948, #3949, #3950, #3951).

Translations

  • Updated from Hosted Weblate (#3601). Thanks to the translators. 🌍

Issues Resolved

#3904, #3963, #3954, #3955, #3952, #3934, #3927, #3924, #3925, #3922, #3921, #3937, #3915, #3914, #3912

Full Changelog: v4.12.4...v4.12.5

🚀 MeshMonitor v4.12.5

📦 Installation

Docker (recommended):

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

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