Communication, session and delivery model

How messages obtain stable identities, enter sessions and undergo a verifiable delivery life cycle.

confirmed4 elements

Model 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

  1. Repeated RX/ACK does not create a second business message.
  2. The final state can only be driven by verifiable events, and the UI does not guess.
  3. Retrying does not change the business identity of the original message.
  4. 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.h
modules/core_chat/src/delivery/chat_message_ledger.cpp
modules/core_mesh/include/mesh/usecase/receive_packet_service.h

Drill down: message delivery life cycle