Communication, session and delivery model
How messages obtain stable identities, enter sessions and undergo a verifiable delivery life cycle.
confirmed4 elementsModel judgment
The line protocols of Meshtastic, MeshCore and Reticulum are different, but user messages cannot be split into three sets of business models. Unification occurs at the intent and delivery event level; protocol differences stay at the backend boundary.
Invariant
- Repeated RX/ACK does not create a second business message.
- The final state can only be driven by verifiable events, and the UI does not guess.
- Retrying does not change the business identity of the original message.
- The protocol namespace participates in persistence and deduplication keys.
Domain Elements
ChatMessage / Conversation — User-visible messages and context.
ChatMessageLedger — The only submission entry for delivery facts.
ReceivePacketService — Receive verification and business submission boundaries.
Source code evidence
modules/core_chat/include/chat/delivery/chat_message_ledger.hmodules/core_chat/src/delivery/chat_message_ledger.cppmodules/core_mesh/include/mesh/usecase/receive_packet_service.h