There's no way for a peer to tell, before sending, whether the peer it's about to message is mid-turn or idle. A message sent while the target is still working on a previous one adds to crosstalk, and can land right as the target starts its next turn instead of when it's actually free.
Sketch: track a busy flag per peer, set true on say, cleared when that peer's watcher re-attaches (long-polls again). Surface the flag in /ping and the operator peers UI, and nudge the protocol text to suggest pinging before an unsolicited send.
Needs a PROTOCOL_VERSION bump for the protocol text change.
There's no way for a peer to tell, before sending, whether the peer it's about to message is mid-turn or idle. A message sent while the target is still working on a previous one adds to crosstalk, and can land right as the target starts its next turn instead of when it's actually free.
Sketch: track a busy flag per peer, set true on say, cleared when that peer's watcher re-attaches (long-polls again). Surface the flag in /ping and the operator peers UI, and nudge the protocol text to suggest pinging before an unsolicited send.
Needs a PROTOCOL_VERSION bump for the protocol text change.