An op recovered from the outbox lands under a canvas that was drawn without it. Its ack moved the item's base to the landed version while the canvas still showed the one before, so a drop (or any edit before the page reloaded) looked like a change on top of the recovered edit and replaced it, silently. The queue now marks the work that was already in the outbox when the strategy became active, and the ops it resends in its place, and says so on each ack. Live sync leaves the base alone for those acks: their landing is a server change like a teammate's, drawn by the next merge, and an edit before that is checked against the version on screen, so the server refuses it and the conflict shows. A recovered op already in flight is also kept as the only local intent while the canvas matches its base, as a queued one was, instead of gaining an overlay that queued the version on screen after it. Fixes #220. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Dara Adedeji committed on 10/1/2026, 2:35:24 PMparent309333f
5 files changedLine totals unavailable