Good question. There are actually two ratchets in MLS and we handle them differently.
For application messages, we don't coordinate generation picks across devices. We let them race. The delivery stream carries the generation in the clear, so when one device sends at gen N, the other sees it and ad...