be patch step 2 of test/patch/15-ancestor-skip merges lib.c to the WRONG content on dog/WEAVE — the DIS-003 "insert-vs-blank" case: a re-stamped spine blank line and theirs's code-line EOL share their bytes (\n), so the content-hashlet diff/merge anchors the inserted line on the wrong side of the blank. It was a ~½ FLAKE on the old graf engine (DIS-003); under the DOG-005 cut-over it is a HARD 5/5 failure, so dog is not byte-parity with graf for this case. Distinct from DIS-043 (criss-cross) and DIS-044 (causal order) — this is an identical-CONTENT token ambiguity, not an ordering one. It is the last case blocking DOG-005's merge cut-over (diff/blame/cat/get are already byte-parity-clean).
Identical-content tokens (blank vs EOL) are not disambiguated at a merge boundary.
test/patch/15-ancestor-skip step 2 (08.lib.want_step2.c) — merged lib.c
differs (deterministic, 5/5). Inputs are in that dir (base/ours/theirs .c).
\n and a code-line's trailing
\n hash equal, so WEAVENext's BRAM/NEIL LCS (or the WEAVEMerge join) pairs the wrong one and the insert lands on the wrong side of the blank.
be-patch-15 is still GRAF-backed (DOG-005 unlanded), so reproduce via
the dog API directly (feed the step-2 base/ours/theirs through WEAVENext/WEAVEMerge/WEAVEProduce), not the graf-backed test.
Disambiguate identical-content tokens; make the fuzzer inject them.
fix so the merge produces the correct content; preserve DIS-043/DIS-044.
dog/fuzz/WEAVE to inject blank lines / repeated identical-content tokens atmerge boundaries so this class is caught; fold the step-2 case in as a property test (confirmed red pre-fix).
is FALSE: DIS-043 (idh JOIN) + DIS-044 (causal order) already removed both DIS-003 layers, so the blank-vs-EOL precondition cannot arise in the post-DIS-044 engine. The be-patch-15 5/5 fail is graf cut-over GLUE, not the engine — re-tasked into DOG-005.
NO repro. No engine change — the changeset is pure teeth: dog/test/WEAVE03 (patch/15 step-2 shared-base oracle, 08.lib.want_step2.c byte-exact), WEAVE01 dis045_insert_blank/dis045_double_blank criss-cross-over-blank cases, and dog/fuzz/WEAVE W2_BLANK injection. 322/322 green; DIS-043/044 not regressed; ~4.7M fuzz execs with blank injection found no mis-anchor.
711618fe ("DIS-045 WEAVE: blank/EOL merge teeth + step-2
oracle"); the be-patch-15 repro lives on in DOG-005.