DIFF-016: EXPECTED-based diff green/red local, pale blue/orange patched-in, yellow conflicts

Now
DONE

Per DIS-080: with fence markers retired, the diff view is where conflicts are seen and resolved. EXPECTED = the straightforward weave reading of base + all in-scope patch-ins (theirs layers, no WT layer). Green/red = wt compared to EXPECTED (local outstanding edits). Patched-in changes (EXPECTED vs base) render pale blue/orange the other kind of in/rm, not salad/salmon. Tokens where both sides touch (conflicts) render yellow. All provenance comes from the weave per-token origin ids no separate diff3 pass.

Input

Context

Goals

  1. Diff render classifies each changed token: theirs-only pale blue (in) / pale orange (rm); wt-vs-EXPECTED green/red; overlap (conflict) yellow. Conflict paths cross-checked against ULOG-004 accessor.
  2. Row metric: patched-in tokens weigh as edits in/rm in the max(in,rm) row weight, total = max + eq ([inline-vs-split-metric-max] extends, C HUNK.c + JS bro.js in lockstep).
  3. Theme: pale blue/orange + yellow SGRs in view/theme.js, plain-text fallbacks for goldens; quad/status colors stay red for con rows.

Constraints

WIP

Design decisions

TODOs

HUNK.c follow-up (the lockstep C twin, NOT done here)

Blockers and bummers

Outcome