jab get ?feat writes conflict markers into the uncommitted file (no up-front dirty refusal)
jab get ?feat against a worktree with a DIRTY tracked file (locally edited, uncommitted) does not refuse: its only dirty guard fires solely for NEW-in-target paths that lack a baseline, so a tracked file present in both trees falls straight into the leaf 3-way weave. The on-disk dirty bytes vs base vs target collide, jab WRITES <<<<dirty||||-feat>>>> into the file and grows the wtlog, then errors GETCONF. The user's uncommitted bytes are mangled and the refusal-atomicity invariant is violated. Native refuses up front (SNIFFDRTY), leaving the file and wtlog untouched. Part of JGET-001; method Issues.
beagle/test/get/09-refuse-no-commit (cross-branch-dirty refusal,SNIFFDRTY, must run BEFORE the commit point).
x.txt dirty, jab get ?feat → x.txt
becomes <<<<dirty||||-feat>>>>, wtlog 7→8 rows, then rc=1 (GETCONF). VERIFIED marker in evidence /tmp/claude-1000/jabprobe/r09/wt/x.txt. Native: rc≠0, x.txt still dirty, wtlog unchanged.
dirtyOverlapCheck (get.js:328) only inspects paths with NO baseline
(new-in-target); a tracked file in both base+target skips it and reaches the leaf weave-merge (~get.js:651/748).
(before any wt write or wtlog append), wt + wtlog byte-identical, nonzero exit with a native-style dirty diagnostic.
native SNIFFDRTY / the existing SNIFFOVRL pre-pass. Repro-first.
dirty on disk (baseline≠wt), not only un-baselined overlays. Keep the existing no-baseline overlay arm. Decide whether --force/weave is the opt-in to merge.
be/test/get/dirty (d80bdb5c, TEST-003 — native retired as oracle) PINS the weave + loud-conflict (rc≠0 + markers) behavior — a refusal fix would contradict that suite. Decide refuse-vs-weave for the cross-branch-dirty case.dirtyOverlapCheck (get.js:607-632 — still baseline-less paths only; a tracked dirty file still reaches the leaf weave get.js:767-786) into a pre-pass over baselined-but-dirty target paths; repro test = dirty tracked file + ?feat → no write, no wtlog growth, nonzero."missing pre-flight refusal" in the seed).