Keep safe undo steps, tell people when one is refused, and fast-path typing
A refused undo now drops only the step it refused, plus any empty steps Yjs passed over, so older steps stay available and are each rehearsed in turn. The document status pill says "Can't undo" for a few seconds. Projections are compared as a multiset, so restoring a card beside a copy a peer moved is refused. Undoing prose this client typed (its own characters, text nodes and top-level blocks nobody else wrote in) skips the rehearsal, which the stress test cross-checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Parentd3f03cc
6 files changed+258-21
StackedSplit