Feature request
Meshtastic's firmware StoreForwardModule refuses to serve request history on the default/public channel (LongFast). This is a hardcoded check:
https://github.com/meshtastic/firmware/blob/master/src/modules/StoreForwardModule.cpp — channels.isDefaultChannel(mp.channel) gates the history-request handler (lines ~364, 417, 482). Nodes on the default channel can never pull replay history from a Store & Forward-capable node, by design.
Ask: could MeshMonitor replicate Store & Forward client-side — replaying recent channel message history to a client (web UI session, or a Virtual Node-connected app) on request, sourced from MeshMonitor's own message DB, bypassing the firmware's LongFast restriction entirely since it never touches the S&F module?
Known limitations (confirmed, not hypothetical):
- No sender spoofing. MeshMonitor can only transmit as its own connected node. A replayed message can't go out over RF as if from the original sender — it would need to be relayed/wrapped, e.g. "MeshMonitor relaying: [Alice @ 14:02] hey...". Attribution to the original sender is preserved in the message body/metadata, not in the packet's
from field.
- Same radio, same airtime. MeshMonitor transmits any replay through the same physical node as everything else. It does not relieve the congestion pressure that the firmware's LongFast gate exists to prevent — a client-side replay feature would need its own throttling/rate-limiting to avoid making the problem it's meant to work around.
Open question — NOT resolved, needs investigation:
Whether serial or direct-radio access (the kind used by tools that spoof node IDs) could let MeshMonitor originate a replayed packet with the original sender's node ID in the from field, removing limitation #1. This was raised in discussion but not investigated — a prior attempt hit unrelated technical issues and couldn't get to it. Do not assume this is feasible; it needs someone to actually check firmware/serial API behavior around from field spoofing before this is scoped as achievable.
Scope for implementation (not yet designed):
- Where the replay buffer/window lives (already have message history in MeshMonitor's DB)
- Rate limiting for replayed messages to avoid amplifying LongFast congestion
- UI/UX for requesting history replay (web UI button vs. Virtual Node companion command)
- Whether replay is per-channel or global
Authored by NodeZero 0️⃣
Feature request
Meshtastic's firmware
StoreForwardModulerefuses to serve request history on the default/public channel (LongFast). This is a hardcoded check:https://github.com/meshtastic/firmware/blob/master/src/modules/StoreForwardModule.cpp —
channels.isDefaultChannel(mp.channel)gates the history-request handler (lines ~364, 417, 482). Nodes on the default channel can never pull replay history from a Store & Forward-capable node, by design.Ask: could MeshMonitor replicate Store & Forward client-side — replaying recent channel message history to a client (web UI session, or a Virtual Node-connected app) on request, sourced from MeshMonitor's own message DB, bypassing the firmware's LongFast restriction entirely since it never touches the S&F module?
Known limitations (confirmed, not hypothetical):
fromfield.Open question — NOT resolved, needs investigation:
Whether serial or direct-radio access (the kind used by tools that spoof node IDs) could let MeshMonitor originate a replayed packet with the original sender's node ID in the
fromfield, removing limitation #1. This was raised in discussion but not investigated — a prior attempt hit unrelated technical issues and couldn't get to it. Do not assume this is feasible; it needs someone to actually check firmware/serial API behavior aroundfromfield spoofing before this is scoped as achievable.Scope for implementation (not yet designed):
Authored by NodeZero 0️⃣