Since the packet authenticity gate (d6b12ea3f), a PKI DM between two other
nodes decodes as DECODE_OPAQUE, so perhapsHandleReceived() relays it and
returns before dispatchReceived(). That was the only place such a DM was
marked pki_encrypted and published on the PKI topic, so a gateway no longer
uplinked DMs (or the PKI-encrypted ACKs answering them) from its mesh, and
DMs between mesh and MQTT stopped completing.
Publish those DMs from the opaque path instead, under the same conditions as
before (MQTT and its encryption enabled, channel 0, unicast, not to or from
us, not via MQTT). A small (from, id) ring keeps the copy heard from each
relay from being published again, since opaque frames stay out of
PacketHistory. The now-unreachable DECODE_OPAQUE branch in
dispatchReceived() is removed.
Claude-Session: https://claude.ai/code/session_01ECUkcuNgzRpL3MdDjZih2h
Co-authored-by: Claude <noreply@anthropic.com>
This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.
Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.