github Yeraze/meshmonitor v4.17.1-rc1

pre-release4 hours ago

MeshMonitor v4.17.1-rc1

⚠️ Pre-release. This is the first release candidate of the 4.17.1 cycle. It is for testing; it does not move the latest Docker tag. Back up before you upgrade a production install.

Summary

The main change is MeshCore emoji reactions. MeshMonitor now reads the reactions that MeshCore One and meshcore-open send, shows them as chips under the message they answer, and can send its own in MeshCore One format. Reactions also show in Unified Messages, export to CSV, and can fire an automation when a rule opts in. A companion radio's contact list gets its auto-add options (mode, types, max hops, replace-oldest) and a bulk remove of non-favourite contacts, for radios that fill up. Three MeshCore bugs are fixed: telemetry sharing modes that silently reverted, room posts whose author never matched a contact, and a misleading observer field label. On Meshtastic, a new opt-in setting re-applies the Status Message when a node reboots and comes back without it, and the rebroadcast mode descriptions now match what firmware does. Upgrading runs migration 203 automatically.

Features

  • MeshCore reactions (epic #5759)
    • Reaction codec for the MeshCore One and meshcore-open formats (#5771)
    • Inbound reactions as chips, with a dim line for a reaction to a message this source never heard (#5775)
    • Send reactions: react button, emoji picker, your own chips marked, automation tapback on MeshCore (#5776)
    • Chips in Unified Messages, reaction and reply_to_id CSV columns, opt-in automation trigger (#5778)
  • MeshCore radio contact list: auto-add mode and type filters, max hops, replace the oldest non-favourite when full, and "Remove non-favourite contacts from the radio" (#5783)
  • Status Message: opt-in, per-source "Re-apply after a reboot" (#5784)

Bug Fixes

  • MeshCore: all three telemetry sharing modes now persist; saving them together used to keep only one (#5781)
  • MeshCore: room post authors resolve to the right contact; the author key was corrupted for keys with high bytes (#5782)
  • MeshCore: the observer field "Region (IATA)" is now "Observer location (IATA)", with help text that says what it is (#5781)
  • Meshtastic: rebroadcast mode descriptions follow firmware behaviour, not the stale protobuf comments (#5780)

Dependencies

  • maplibre-gl 6.11.2 → 6.13.0 (#5752)
  • lucide-react 1.49.0 → 1.54.0 (#5754)
  • vite-plugin-pwa 1.3.0 → 2.0.0 (#5751)
  • @rollup/rollup-linux-arm64-musl 4.63.6 → 4.64.3 (#5756), @rollup/rollup-linux-arm-gnueabihf (#5755)
  • actions/setup-node 7.0.0 → 7.1.0 (#5758), actions/upload-artifact 7.0.1 → 7.0.2 (#5753)

Issues Resolved

#5759, #5760, #5761, #5762, #5763, #5764 (MeshCore reactions), #5772, #5773, #5774, #5777, #5779.

#5745 (Status Message lost on reboot) stays open: the cause is in firmware. This release adds a mitigation.

Upgrade notes

  • Migration 203 adds reaction columns to meshcore_messages. It runs on first start and does not rewrite existing rows.
  • New settings and their defaults
    • Show MeshCore reactions: per source, on
    • Send reactions from MeshMonitor: per source, on. Each reaction is one short packet; on a channel every repeater in range sends it again
    • Auto-Acknowledge may answer reactions: global, off
    • Re-apply the Status Message after a reboot: per source, off
  • Automations: a MeshCore reaction fires a "message received" rule only when the rule ticks Also fire on MeshCore reactions. No existing rule changes. A rule that sends a message for every reaction has no built-in limit; set a cooldown.
  • CSV export: two columns are appended (reaction, reply_to_id), and MeshCore rows now fill message_id. MeshCore reactions are left out unless Include emoji reactions is ticked. The first 13 columns keep their name and order.
  • Rooms: posts stored before this release keep their corrupted author key. They show the contact's name when it can be matched safely, and "Unknown sender" otherwise.

What would help most from testers

  • A reaction between MeshMonitor and a real MeshCore One device, in both directions, on a channel and in a DM. This was tested between two MeshMonitor sources only.
  • A room post from a device whose public key has bytes of 0x80 or above in its first four.
  • Remove non-favourite contacts on a full companion radio.

Thanks

Thanks to @temalo for the rebroadcast description fix (#5780), and to @Donixon for the detailed room post report (#5774).

Full changelog: v4.17.0...v4.17.1-rc1

🚀 MeshMonitor v4.17.1-rc1

📦 Installation

Docker (recommended):

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

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