Status: accepted
Context
Whole-file saves are slow for large files, lossy for concurrent edits, and useless for undo replay or future collaboration.
Decision
All text mutations travel as patches inside core::Transaction ops with expected versions. Sources apply patches (folder: read-modify-write atomically; databases: as updates).
Consequences
- Undo/redo = replay.
- A CRDT (e.g.
loro/yrs) can be introduced later behind the same op stream; not adopted now. - Sources that cannot patch (a read-only DB) return
Unsupportedper op.