Commit Graph

2 Commits

Author SHA1 Message Date
Levi Neuwirth 099b5a7383
docs: narrow R7's causal claim, and record U6's first reproduction
R7's eighth-occurrence write-up said the gate's ambient root, TMPDIR and
cross-stage process state were "now the only place the difference can
be". That is wrong. The paired runs exclude the SOURCE TREE and nothing
else: scheduler load, kernel and socket timing, page cache pressure and
whatever else the machine was doing also varied between them, and a
BrokenPipe on a socket handshake is exactly what those can drive. The
three remain the candidates worth varying one at a time --- because they
are the ones this project can vary --- not an exhaustive causal set.

U6 gained a second occurrence, and for the first time it REPRODUCED:
both selectors, both fragments, two consecutive runs. Margins recorded
per U11's lesson --- 1.343883ms against 1ms, and 1.182x against 1.10x.

Its asymmetry runs the opposite way to R7's: both failures were out of
gate, while the same command as `04-lib-crdt` was green in all four of
this lane's gate runs. Whatever the two rows share, it is not a
direction.

Framing revision 5 and the lane block are updated to match, including
the stale "AWAITING APPROVAL. Nothing implemented." header and the gate
line that named a commit the branch had already moved past.
2026-08-30 19:19:35 +02:00
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