- Improved
Anchor FreeText edits to the find-hit span
pdf-update-annotation accepts optional search and indexUtf16 from collab find so only that FreeText span changes, and a drifted offset fails closed.
- Span editPass the hit indexUtf16 and the matched search. nextAnnotation.contents replaces only that FreeText span and leaves the rest.
- Fail closed on driftIf that span no longer matches, the mutation returns mutation_match_conflict and writes nothing.
- Whole-contents contract staysOmit search and indexUtf16 to set the whole FreeText contents. There is still no PDF body replace-text.
