Setting `COMPANION_CONTACTS_POLL_S` > 0 polls for contacts periodically, but the protocol handler cannot process the fetched contact list, resulting in protocol auto-switching being needlessly triggered.
Rather than ignoring these contact packets and returning `None` from `MeshcoreCompanionProtocol.decode()`, it now returns `internal_only = True`. This sets the groundwork for future full, correct processing of contacts.
MeshCore messages already prepend the MeshCore ID to messages bridged to Meshtastic, so now conversely, Meshtastic IDs are prepended to messages bridged to MeshCore.
The `external_message` dict in the Meshtastic handler is missing the `channel_index` key, which means that `channel_index = decoded_msg.get("channel_index", 0)` in the MeshCore handler will always incorrectly default to 0
`PACKET_LOG_DATA` and `PACKET_ADVERTISEMENT` are quite common and too many `PACKET_LOG_DATA` packets in a row needlessly triggers protocol auto switching.
Rather than ignoring these packets and returning `None` from MeshcoreCompanionProtocol.decode() instead return `internal_only = True`