-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Labels
UI/UXChanges to, or issues with, the user experience or interface.Changes to, or issues with, the user experience or interface.enhancementNew feature or requestNew feature or request
Description
Hi! In MeshCore Open (Flutter client), sending messages to public channels (group text) is currently “one-shot”, and if the transmit doesn’t actually get out (temporary link/radio busy, missed TX window, etc.) the message is effectively lost and the user has to manually resend.
In the MeshCore ecosystem, retries already exist for some message flows (e.g., failing after 3 retries in certain path scenarios), but public channel messages are still easy to drop because there’s no per-recipient ack.
Problem
- Public channel messages occasionally don’t reach the mesh, and the UI gives no reliable “it really went out” signal (or it shows “Sent”, but nobody hears it).
- Users manually resend the same text, which is annoying and error-prone.
Expected
When sending a public/channel message, the app should automatically retry a few times if there is no confirmation that the message actually made it onto the air / into the mesh.
Proposed
- Add an “outbox” state for channel messages: Sending → Sent (local TX accepted) → Confirmed (optional) / Failed.
- Retry policy (suggestion):
- Max attempts: 2–3 (configurable).
- Backoff: exponential with jitter (e.g., 1s, 3s, 7s + random 0–1s).
- Stop retrying if we get a positive signal that the message propagated. In the official Flutter app there’s a notion of channel status like “Sent” and later “Heard N repeats”; if MeshCore Open has similar data available, “Heard ≥ 1 repeat” could be treated as confirmation.
- UX:
- Show “Retrying… (2/3)” and allow “Tap to retry now” / “Cancel”.
- Optional setting: enable/disable retries for channel messages, configure max attempts.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
UI/UXChanges to, or issues with, the user experience or interface.Changes to, or issues with, the user experience or interface.enhancementNew feature or requestNew feature or request