- 8008de0: Preserve text ownership while paragraphs are reordered concurrently with typing.
- d87cc9c: Hide stale remote carets during local structural changes and restore them from refreshed awareness positions.
- 42c166f: Fix carets jumping or splitting when a remote user drags a block above a paragraph being typed in. Cursor recovery now detects more misresolved positions, matches blocks by attrs when text diverged, and no longer sends the cursor to the document start when recovery fails.
- eedb56e: Fix remote collaborator carets jumping or splitting during drag-and-drop in collaborative editing.
- 9f2d091: Fixed Recieving null from
mapping.get(t)ormapping.get(contentType)inrelativePositionToAbsolutePositionreturnnullinstead of failing. It fails because position is taken fromnodeSizeon the returned entry, without catching the case of the lookup onmappingreturning null. - b146586: Fix duplicated blocks when dragging with the drag handle during collaborative editing. Node range selections are now preserved across remote updates instead of being reset, so dropping a block moves it instead of leaving a copy behind. Also hardens node selection restore so a remote update that removes the selected node can no longer throw.
- c898728: Guard against undefined
ystateinupdateCursorInfoto prevent breaking cursor tracking (floating toolbars, selection menus, collaborative cursor overlays) during Yjs sync initialisation and document transitions. - 000bda2: Guard against null awareness state values in the cursor plugin so iterating over
awareness.getStates()after a client disconnects no longer throws a TypeError when accessingaw.cursor. - 09e406d: Fix a memory leak in
yUndoPlugin. Yjs'UndoManagerregisters adoc.on('destroy', …)listener in its constructor thatUndoManager.destroy()never removes. When the Y.Doc outlives the editor (e.g. several editors sharing one provider), that listener kept theUndoManager— and everything it referenced — reachable from the doc, leaking memory on every editor destroy. The plugin now removes that listener when its view is destroyed (only for managers it created; a caller-providedundoManageris left untouched).
- 7a1b55a: Handle stale cursor awareness meta transactions more safely by retrying the queued cursor-only update once and dropping it if the transaction is still mismatched, preventing editor crashes during asynchronous awareness refreshes.