be LAGS jab, so jab-vs-native byte-parity now tests against a STALE oracle
Eleven be/ ctest cases assert jab's output is BYTE-IDENTICAL to native be <view> (the C keeper as an oracle). The C impl now LAGS the JS (jab) impl — jab has view features native lacks (e.g. COMMIT-007 human dates) — so those comparisons fail on real, intended jab improvements, not bugs. Drop every native-VIEW-ORACLE comparison; assert jab INTRINSICALLY instead (self-contained golden / structural, like test/commit/ticket). COMMIT-007 already de-nativifies the four commit/* oracle cases as its necessary slice; this ticket owns the rest + the policy. Method: Issues.
be (the C beagle/) is BEHIND jab (the JS be/): jab views gained behaviour the C keeper has not (human commit dates, word-URI links, F ticket codes, …). A jab-vs-native byte cmp therefore red-flags a jab IMPROVEMENT as a regression — the oracle is stale, not jab.cmp'd against "$BE" <read-verb>): bro/rowclick, commit/{diff,links,render,resolve}, diff/08-sub-pin-bump- gitlink, diff/11-file-scope-full, log/links, log/sub, sub/wtsrc, why/range — 11 dirs (grep "$BE" +(commit|log|diff|status|…) in test/).commit/{render,links, resolve,diff} — all four FAIL only on the date line (mask it → jab == native exactly), proving the oracle, not jab, is wrong."$BE" post/put (the on-disk git object format is stable, so seeding is lower-risk). Converting seeds to jab post/put is optional cleanup.cmp jab vs "$BE" <view> and asserts jab intrinsically: the invariant the test actually cares about (structure, the resolved sha, the U/F targets, a self-contained golden), not sameness to a lagging C oracle.commit/* oracle cases are OWNED by COMMIT-007 (its necessary slice); this ticket covers the remaining seven and sets the policy: NO NEW native-parity view test — assert jab intrinsically.cmp goes. Seed with jab where practical so a case needs no native be at all; a case that still only SEEDS with native is acceptable (secondary axis).test/ (a submodule) MUST be staged (jab put) or a jab get recursion sweeps them (test-dir-is-submodule). Repro-first where a golden is introduced; keep the be/ suite green. Method: Issues.oracle>0 dirs first. A jab-intrinsic assert = what the case verifies WITHOUT native: commit/* structure + human date + U/F; diff/* the @@/+++ hunks + changed paths; log/* the row shape + commit:?<sha> U; why/* the blame spans; bro/rowclick the click→spell; sub/wtsrc the sub view rows.commit/*); mirror its pattern (drop the "$BE" commit capture + cmp, keep the check.js/structure asserts, seed via jab) for the other seven.commit/{render,links,resolve,diff} — de-nativified under COMMIT-007 (dropped the native cmp, assert jab intrinsically; all 5 commit/* GREEN); landed ae6ac86f.diff/08-sub-pin-bump-gitlink, diff/11-file-scope-full — jab-intrinsic (TEST-003 markers in run.sh: "no oracle cmp"); landed d80bdb5c.log/links, log/sub — jab-only, BE=$JABC alias + intrinsic targets; landed d80bdb5c.why/range — jab-only ("native be is RETIRED" header); landed d80bdb5c.bro/rowclick — jab-only; expected rows derived from jab's own log+sha1:; landed d80bdb5c.sub/wtsrc — project-less local file: clone, no native; landed d80bdb5c.commit/* oracle cases under COMMIT-007 (ae6ac86f); the remaining 7 dirs (bro/rowclick, diff/{08,11}, log/{links,sub}, sub/wtsrc, why/range) under d80bdb5c ("TEST-003,JS-099,SUBS-046: js tests pass, no native use")."$BE" occurrences in be/test are jab- aliased seeds only (lib/{parity,getcase,postcase,patchcase,getrepro}.sh set BE=$JABC); be/ wt + test/ sub clean.