mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-09-25 05:04:20 +00:00
2 lines
2.3 KiB
HTML
2 lines
2.3 KiB
HTML
<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Communication, session and delivery model</title><style>:root{color-scheme:dark}body{margin:0;background:#0b1219;color:#e8f2f8;font:15px/1.65 system-ui}main{max-width:980px;margin:auto;padding:28px}header,section{background:#111c26;border:1px solid #294052;border-radius:12px;padding:20px;margin-bottom:16px}h1,h2{margin-top:0}a{color:#70d7ff}code,pre{background:#081018;border-radius:7px;padding:2px 6px}pre{padding:16px;white-space:pre-wrap}.tag{border:1px solid #426277;border-radius:999px;padding:2px 8px;margin-right:5px}</style></head><body><main class="praxis-model-document" data-praxis-anchor="model:communication-conversation" data-praxis-kind="uml_model" data-praxis-status="confirmed"><header><h1>Communication, session and delivery model</h1><p>How messages obtain stable identities, enter sessions and undergo a verifiable delivery life cycle.</p><span class="tag">confirmed</span><span class="tag">4 elements</span></header><section><h2>Model judgment</h2><p>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.</p><h2>Invariant</h2><ol><li>Repeated RX/ACK does not create a second business message.</li><li>The final state can only be driven by verifiable events, and the UI does not guess.</li><li>Retrying does not change the business identity of the original message.</li><li>The protocol namespace participates in persistence and deduplication keys.</li></ol></section><section><h2>Domain Elements</h2><p><strong>ChatMessage / Conversation</strong> — User-visible messages and context.</p><p><strong>ChatMessageLedger</strong> — The only submission entry for delivery facts.</p><p><strong>ReceivePacketService</strong> — Receive verification and business submission boundaries.</p></section><section><h2>Source code evidence</h2><p><code>modules/core_chat/include/chat/delivery/chat_message_ledger.h</code><br><code>modules/core_chat/src/delivery/chat_message_ledger.cpp</code><br><code>modules/core_mesh/include/mesh/usecase/receive_packet_service.h</code></p><p><a href="message-delivery-lifecycle.html">Drill down: message delivery life cycle</a></p></section></main></body></html>
|