A patch can now name the fields it changed (merge.fields). The server writes only those onto the row as it is now, without a revision check, so two teammates changing different things of one item both land and the last write to a field wins. Lineup groups merge by item and are checked as a whole afterwards (merge_invalid). Work that waited offline sends the base value of each field, and a field a teammate changed meanwhile refuses the op (field_conflict). A delete with lastWriterWins skips the revision check. Patches that cannot merge by field (a different payload version, or a change of what the element is) are applied as whole, revision-checked writes, and clients that send no merge keep today's behaviour exactly. docs/collaborative-editing.md describes the model. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dara Adedeji committed on 10/10/2026, 5:23:43 AMparent656ac5e
8 files changedLine totals unavailable