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/).
resolve,diff}` — all four FAIL only on the date line (mask it → jab == native exactly), proving the oracle, not jab, is wrong.
native "$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 necessaryslice); this ticket covers the remaining seven and sets the policy: NO NEW native-parity view test — assert jab intrinsically.
only the native-sameness 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.still leave a native SEED (acceptable — secondary axis, tracked here).
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").
TEST-003 jab-intrinsic asserts; "$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.