Keep a recovered edit when the user drops a held item over it

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>
53bbfea74dDara Adedeji committed on 10/1/2026, 2:35:24 PMparent309333f
5 files changedLine totals unavailable