Commit Graph

1 Commits

Author SHA1 Message Date
Levi Neuwirth 5fedd15a3d
docs: frame the identity-replace undo lane
A CRDT-version delta and a text delta are independent dimensions of
`Edit`. The invariant that says otherwise was written for
`is_no_op_edit`, a forward pre-check that `undo_crdt_mode` and
`redo_crdt_mode` never reach.

Approved at revision 4, after four review rounds. What the rounds
changed, since the record is worth more than the conclusion:

- revision 2 answered the question instead of posing it, and narrowed
  what the existing fixture actually established (broadcast reachability
  is by inspection, not replay);
- revision 3 completed §4's consumer census rather than deferring it,
  and two of its results corrected the framing's own claims: `TextView`
  is not buffer-attached at all, and two consumers already carry
  explicit empty/empty guards written for other reasons;
- revision 4 replaced C9's file-set-and-count guard, which a same-file
  substitution walks straight through, with an exact `(file, impl
  target)` assertion scoped to in-tree implementations.

Three witnesses exist because a green suite is not evidence that a suite
RAN: re-ignoring a fixture (C1), dropping a loop parameter (C6), and
adding an unclassified consumer (C9) are all silent under ordinary
assertions.
2026-08-30 17:41:16 +02:00