You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix reconcile loop when attribution marks are non-self-excluding
When an integrator declares the fixed `y-attributed-*` marks
*non-self-excluding* (e.g. BlockNote, so user content marks may overlap
them), `nodeToDelta` keyed them with the overlapping-mark `--<hash>`
suffix while the attribution mapper and the PM->Y strip key them bare.
The PM<->Y write diff and the Y->PM reconcile then disagreed on the
format key and flapped between `y-attributed-delete` and
`y-attributed-delete--<hash>` forever - a paragraph->heading suggestion
froze the browser.
Key the three fixed attribution mark names bare regardless of
self-exclusion: the attribution manager already aggregates every author
of a span into a single mark (its `userIds` is a list), so an attribution
mark never needs the overlapping-mark hash to stay distinct.
Adds a block-boundary regression test that reconcile-loops (hits a
transaction guard) without the fix and converges with it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments