PATCH-015: JS patch still speaks DIS-030 — ?br absorbs ONE commit, spec says the whole line

Now:
DONE

Input

Context

/wiki/PATCH (post-DIS-030-overturn): "URI bangs retired (the old ?br! whole-branch toggle is gone — ?ref always takes the whole missing line)"; the bang rides the verb only (patch! = foster). The JS verb still implements the dead model: shared/patchscope.js parses ?br → NEXT (absorb ONE commit) and ?br! → WHOLE (shed the !), and the PATCHFAIL usage line advertises ?<br>!. Found while landing /todo/PATCH/PATCH-014 (the row-side deban) under /todo/BRO/BRO-030.

Goals

be patch ?br (and bare patch) absorbs the WHOLE missing line per the spec; the ?br! arg form and the NEXT scope die; the refusal text stops advertising the bang.

Constraints

WIP

Design decisions

TODOs

-v patchscope: NEXT dropped, ?br/bare → whole missing line; bare patch resolves theirs = the tracked ref; resolveOurs prefers wt cur (the bare-track bug) -v ?br! arg silently debanged (no refusal — the tests pin tolerance) -v acceptance: bare-track / path-scoped / provenance-foster / provenance-picked green; parent/query-line/noop-behind/nosub/quad/stampband stayed green -v STALE TEST re-snapshot ORDERED 2026-07-18: leg 1 now absorbs ?<sha> (LINE → 2-parent merge kept), leg 2 expects the loud PATCHCONFLICT non-zero exit; amended in work/PATCH, suite 291/291 - the ~12 remaining test/patch reds are the SEPARATE report/stamp regression (concurrent worker)

Outcome