github Yeraze/meshmonitor v4.6.2

latest release: v4.6.2-1
5 hours ago

MeshMonitor v4.6.2

Patch release focused on MQTT ingest completeness and channel-name UX. MQTT bridges and brokers now ingest the full set of Meshtastic portnums (text, telemetry, position, nodeinfo, traceroute, neighbor info, paxcounter, store-and-forward) with proper per-source attribution and server-side channel decryption — receptions of the same mesh packet on TCP and MQTT now dedup into a single Unified Messages entry with all sources listed. Empty-named slot 0 now displays as the modem preset's firmware label (MediumFast, LongFast, etc.) instead of the synthetic "Primary", matching what MQTT gateways publish under and collapsing the TCP and MQTT views of the same channel into one picker entry. The Channel Database is now genuinely global (PSKs apply to decryption across all sources), with the dead sourceId column dropped and management moved from the per-source Channels tab to Global Settings. A Meshcore repeater-telemetry regression was fixed via SendStatusReq + guest-login fallback. The Desktop first-run flow no longer requires a Meshtastic IP. See the release blog post for the three user-visible changes you'll notice immediately.

Features

  • #3089 feat(mqtt): full source-scoped ingest with channel decryption and unified-view fixes — Auto-bootstraps the LongFast PSK into channel_database, decrypts encrypted packets server-side, adds TRACEROUTE_APP / NEIGHBORINFO_APP / PAXCOUNTER_APP / STORE_FORWARD_APP handlers, pre-seeds the geo-membership cache with trusted local-mesh nodes and in-bbox positions, fixes telemetry source attribution in /api/unified/telemetry, and aligns MQTT message row IDs with the TCP convention so cross-source dedup collapses TCP + MQTT receptions of the same packet into one Unified Messages entry.
  • #3093 feat(channels): apply modem-preset display name to per-source channels viewtransformChannel now emits a displayName field that uses the source's persisted lora.preset for empty-name slot 0 (firmware-spec label MediumFast / LongFast / etc.), falling back to "Primary" only when no preset is known.
  • #3088 feat(desktop): remove Meshtastic IP requirement from first-run setup — Desktop can now start with no source configured and add one through the UI.

Bug Fixes

  • #3094 fix(meshcore): repeater telemetry via SendStatusReq + guest-login fallback — Resolves #3092 (telemetry retrieval failing on every Meshcore repeater).
  • #3086 fix: clear recovery message on SQLITE_CORRUPT migration failure — The recovery message now clears correctly when migrations succeed after a prior corruption.

Refactoring

  • #3091 refactor(channel-db): drop dead sourceId column (migration 063) and move UI to Global Settingschannel_database PSKs were already global (decryption tries every enabled row regardless of source), so the per-row sourceId was misleading dead weight. Drops the column, removes the Channels-tab UI entry point, and surfaces management under Global Settings.

Dependencies

  • #3069 chore(deps): bump lucide-react from 1.14.0 to 1.16.0
  • #3070 chore(deps): bump protobufjs from 8.2.0 to 8.3.0
  • #3072 chore(deps): bump better-sqlite3 from 12.9.0 to 12.10.0
  • #3071 chore(deps-dev): bump puppeteer from 24.43.0 to 25.0.2

Docs

  • #3090 docs: refresh CLAUDE.md, README, CHANGELOG for 4.6.1 accuracy

Release

  • #3095 chore(release): bump version to 4.6.2 — includes the v4.6.2 release blog post and news.json entry.

Issues Resolved

  • #3092 [BUG] MeshCore telemetry retrieval fails on every repeater (meshcore-only setup, v4.6.1)
  • #3085 [SUPPORT] 4.6.1 on Raspbian baremetal
  • #3042 [BUG] No upgrade since 4.5.0

Upgrade notes

After upgrading:

  1. Glance at your Channels tab so the rename from "Primary" to your preset's label isn't a surprise.
  2. Open Global Settings → Channel Database to confirm the auto-seeded LongFast row landed. Add any private-channel PSKs you want MeshMonitor to decrypt.
  3. Re-check Unified Messages and Unified Telemetry — your feed should now include MQTT-sourced data for nodes inside your configured bbox.

Full Changelog: v4.6.1...v4.6.2

🚀 MeshMonitor v4.6.2

📦 Installation

Docker (recommended):

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

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