cnf/GETCONF (rc=1) where native emits mrg (rc=0), and ours/theirs are SWAPPED
A behind-worktree FF / cross-branch weave over a file with DISJOINT edits merges correctly under jab (verified PARITY). But a directly-COLLIDING single-line edit diverges twice from native: jab emits a fatal cnf + GETCONF (rc=1) where native emits a non-fatal mrg (rc=0) with the union markers, AND the conflict hunk has ours/theirs reversed (<<<<theirs||||mine>>>> vs native <<<<mine||||theirs>>>>). Part of JGET-001; method Issues.
beagle/test/get/66-staged-overlap-merge (arm B requires mrg, rc=0).cnf+GETCONF
rc=1, sides swapped; native → mrg rc=0. Disjoint-region edits: PARITY (verified). Evidence /tmp/claude-1000/jabprobe (case 66 pair).
get.js:748 / shared weave3) — conflict classification
(fatal vs non-fatal mrg) and the ours/theirs argument order.
mrg (rc=0) with the union, ours/theirs in nativeorder; only an unmergeable case escalates — matching native case-66 arm B.
and the mrg (emit union, rc=0) vs cnf (GETCONF, rc=1) decision boundary.
cnf/rc=1 escalation is now PINNED as spec by be/test/get/dirty case A2 (d80bdb5c, TEST-003 — native retired as oracle, "a real conflict must exit NON-ZERO" + markers required); native's mrg/rc=0 is no longer the target unless DIS-057/Dirty.mkd rule otherwise. Decide, then either wontfix this half or change the test.weave3(baseBytes, onDisk, bytes, …) (get.js:774) with ours=onDisk (dirty), theirs=target; wm.merged([oScope, tScope]) (get.js:904-907) renders ours-scope first — verify the fence layout against the reported <<<<theirs||||mine>>>> swap and fix the side order if confirmed (dirty A2 asserts MINE5 presence, not position).be/test/get/dirty A2 to assert the marker SIDE ORDER.
mrg/cnf taxonomy there.