This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
ReleasePort's take
Light signalMeshMonitor 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 summaryUpdates 4.6.5] - 2026-05-22, π MeshMonitor v4.6.5, and mqtt-bridge across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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_bridgecards 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 outside0-7from upstream nodes with custom configs, and the "Show MQTT messages" toggle is hidden because every bridge packet hasviaMqtt=trueand 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_tcpsource'smqttLinkconfiguration now accepts either anmqtt_brokeror a standalonemqtt_bridgesource as its parent.
Fixes
- #3143 fix(mqtt-bridge): wire
MqttBridgeManagerinto the consolidated poll path β addsgetConnectionStatus,getAllNodesAsync,getDeviceConfig,getDeviceNodeNums, andgetSecurityKeysso/api/poll?sourceId=<bridge>and/api/connection?sourceId=<bridge>stop throwingTypeError: ... is not a function.mapDbNodeToDeviceInfoandloadAllNodesAsDeviceInfoextracted tosrc/server/utils/dbNodeMapper.tsso 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
nodestable 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, solongName/shortName = null) appeared in the unified view twice β once labeled, once asNode <nodeNum>.getAllNodesAsyncnow collapses per-source rows into one entry pernodeNumwhen nosourceIdis supplied: the newest row bylastHeardwins, empty fields are back-filled from older rows, andisFavorite/isIgnored/favoriteLockedare 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
About Yeraze/meshmonitor
All releases βRelated context
Related tools
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]