Skip to content

Yeraze/meshmonitor

v4.6.5 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 12d Monitoring & Metrics
βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’

✓ No known CVEs patched in this version

Topics

meshcore meshtastic mqtt

ReleasePort's take

Light signal
editorial:auto 11d

MeshMonitor v4.6.5 adds a read‑only MQTT Bridge dashboard and several bug fixes across the platform.

Why it matters: Provides observability of MQTT bridges via a new dashboard; resolves API errors, telemetry preservation, env‑info leakage, session handling, node label consistency, and documentation cleanup in version v4.6.5.

Summary

AI summary

Updates 4.6.5] - 2026-05-22, πŸš€ MeshMonitor v4.6.5, and mqtt-bridge across a mixed release.

Changes in this release

Feature Medium

Adds read-only MQTT Bridge dashboard with Open button and suppressed TX surfaces.

Adds read-only MQTT Bridge dashboard with Open button and suppressed TX surfaces.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Feature Medium

Allows standalone mqtt_bridge as client‑proxy target for meshtastic_tcp.

Allows standalone mqtt_bridge as client‑proxy target for meshtastic_tcp.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Feature Medium

Adds Telemetry dashboard tab via source‑agnostic Dashboard.

Adds Telemetry dashboard tab via source‑agnostic Dashboard.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Preserves LPP channel byte in remote telemetry rows for MeshCore.

Preserves LPP channel byte in remote telemetry rows for MeshCore.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Bugfix Medium

Skips PKI flag when keyMismatchDetected during DM processing.

Skips PKI flag when keyMismatchDetected during DM processing.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Bugfix Medium

Reorganizes site documentation and removes dead links.

Reorganizes site documentation and removes dead links.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Wires MqttBridgeManager into consolidated poll path to implement required methods and avoid 500 errors.

Wires MqttBridgeManager into consolidated poll path to implement required methods and avoid 500 errors.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Suppresses env‑default Meshtastic IP leaking into AppHeader node‑info slot for MQTT bridges without a local device.

Suppresses env‑default Meshtastic IP leaking into AppHeader node‑info slot for MQTT bridges without a local device.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Merges nodes across sources to show labels consistently in unified Nodes view.

Merges nodes across sources to show labels consistently in unified Nodes view.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Full changelog

[4.6.5] - 2026-05-22

MeshMonitor v4.6.5

Patch release adding a read-only MQTT Bridge dashboard, a MeshCore telemetry tab in the source-agnostic dashboard, and a handful of cross-source / unified-view fixes. MQTT Bridge sources now have their own "Open" button on the source list and render the full Meshtastic dashboard with every transmit surface suppressed β€” bridges ingest but never send, so send composers, DM action buttons, Device Configuration, Remote Administration, and Automation tabs are all hidden. Server-side, MqttBridgeManager now implements the Meshtastic-shaped methods the consolidated /api/poll and /api/connection endpoints call through resolveSourceManager β€” without those, the bridge dashboard 500'd before any data could render. Standalone mqtt_bridge sources are also now valid targets for the meshtastic_tcp client-proxy mqttLink.

Features

  • #3143 feat(mqtt-bridge): mirror dashboard for MQTT Bridge sources β€” adds an Open button to mqtt_bridge cards and routes to a read-only mirror of the Meshtastic dashboard. Suppresses every TX surface: send composers (Channels + DM), the four top DM action buttons (Traceroute / Exchange Node Info / Exchange Position / Request Neighbor Info), the matching DM Actions dropdown entries (Traceroute / Exchange / Request Telemetry / Scan for Admin), and the Device Config / Remote Admin / Automation sidebar tabs. The Channels picker also relaxes the per-channel permission filter for bridge mode since bridges routinely see channel slots outside 0-7 from upstream nodes with custom configs, and the "Show MQTT messages" toggle is hidden because every bridge packet has viaMqtt=true and the filter would always blank the list.
  • #3142 feat(meshcore): add Telemetry dashboard tab via source-agnostic Dashboard (#3139)
  • #3136 feat(mqtt): allow standalone mqtt_bridge as client-proxy target (#3134) β€” a meshtastic_tcp source's mqttLink configuration now accepts either an mqtt_broker or a standalone mqtt_bridge source as its parent.

Fixes

  • #3143 fix(mqtt-bridge): wire MqttBridgeManager into the consolidated poll path β€” adds getConnectionStatus, getAllNodesAsync, getDeviceConfig, getDeviceNodeNums, and getSecurityKeys so /api/poll?sourceId=<bridge> and /api/connection?sourceId=<bridge> stop throwing TypeError: ... is not a function. mapDbNodeToDeviceInfo and loadAllNodesAsDeviceInfo extracted to src/server/utils/dbNodeMapper.ts so both managers share the projection.
  • #3143 fix(mqtt-bridge): suppress env-default Meshtastic IP leaking into the AppHeader node-info slot when the bridge has no local device.
  • #3141 fix(meshcore): preserve LPP channel byte in remote telemetry rows (#3139)
  • #3140 fix(dm): skip PKI flag when keyMismatchDetected β€” firmware may lack the key after a purge, so flagging would mark legitimate sessions as compromised.
  • #3137 fix(unified): merge nodes across sources so labels show in the unified Nodes view (#3135) β€” since the composite-keyed nodes table holds one row per (nodeNum, sourceId), a node heard on both an RF source (with NodeInfo) and an MQTT-bridged source (with only a transit packet, so longName/shortName = null) appeared in the unified view twice β€” once labeled, once as Node <nodeNum>. getAllNodesAsync now collapses per-source rows into one entry per nodeNum when no sourceId is supplied: the newest row by lastHeard wins, empty fields are back-filled from older rows, and isFavorite/isIgnored/favoriteLocked are OR'd across sources.

Docs

  • #3138 docs: reorganize site for easier discovery; remove dead links

πŸš€ MeshMonitor v4.6.5

πŸ“¦ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.6.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.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Yeraze/meshmonitor

Get notified when new releases ship.

Sign up free

About Yeraze/meshmonitor

All releases β†’

Related context

Earlier breaking changes

  • v4.7.2 Route `destination` field now rejects non‑8‑hex nodeId or 64‑hex publicKey, returning HTTPβ€―400.

Beta — feedback welcome: [email protected]