Heads-up: things you'll notice immediately β
v4.6.2 ships several user-visible UX changes alongside a much deeper rework of how MQTT-sourced data flows into MeshMonitor. The three things most likely to surprise you on first launch:
1. Your channel may have a new name β
The "Primary" label MeshMonitor used to show on slot 0 was a synthetic fallback β your device's firmware actually publishes that channel under its modem-preset name (MediumFast, LongFast, ShortFast, etc.), and that's the label MQTT gateways relay it under on the public brokers.
After upgrading, MeshMonitor reads each TCP source's persisted LoRa config and renders slot 0 with the preset-derived label. So your Channels tab and Unified Messages picker will switch from "Primary" to whatever your modem preset actually is. The underlying channel is unchanged β only the displayed name. The "Primary" star indicator on the channel that's role-assigned as PRIMARY also still appears, since that's a separate concept (channel role, not channel name).
Side benefit: TCP and MQTT views of the same logical channel now collapse onto one picker entry instead of separate "Primary" and "MediumFast" entries.
2. Channel Database moved β
The Channel Database (server-side decryption PSKs for channels not configured on a connected device) is no longer presented per-source. It was already global under the hood β the decryption service tries every enabled key against every encrypted packet regardless of source β and the per-source UI placement was misleading.
You'll now find Channel Database under Global Settings. Existing rows are preserved and the dead sourceId column is removed in migration 063.
3. MQTT sources now participate in Unified views β
MQTT bridges and the embedded MQTT broker used to be wired up but contribute almost nothing to the cross-source views. This release reworks the MQTT ingest pipeline end-to-end. With Unified Messages and Unified Telemetry you'll now see:
- Text messages, telemetry, and traceroutes from MQTT-relayed nodes (subject to your bbox / channel filters) attributed to the correct MQTT source.
- Cross-source dedup: a single mesh packet heard by TCP and one or more MQTT sources now shows as one entry with a multi-reception array β same packet ID, multiple
sourceIdrows collapsed in the UI. - Server-side channel decryption for encrypted MQTT traffic: the default LongFast PSK is auto-seeded into the Channel Database the first time an MQTT source starts. Add additional channel PSKs under Global Settings β Channel Database to decrypt other channels.
If you've been relying on the "no MQTT entries in the Unified Messages source-filter dropdown" behavior as a sign your MQTT source was broken, look again β it was a downstream symptom of the row attribution bug fixed here.
Other fixes in 4.6.2 β
- Meshcore repeater telemetry β repeater nodes now respond via
SendStatusReqwith a guest-login fallback when the primary path fails (#3094). - SQLITE_CORRUPT migration recovery β the recovery message clears correctly when migrations succeed after a prior corruption (#3086).
- Desktop first-run setup no longer requires a Meshtastic IP β you can start with no source configured and add one through the UI (#3088).
Action items after upgrade β
- Glance at your Channels tab so the rename from "Primary" to your preset's label isn't a surprise.
- Open Global Settings β Channel Database to confirm the auto-seeded LongFast row landed. Add any private-channel PSKs you want MeshMonitor to decrypt.
- Re-check Unified Messages and Unified Telemetry β your map and feed should now include MQTT-sourced data for nodes inside your configured bbox.
Full release notes: CHANGELOG.md.