be LAGS jab, so jab-vs-native byte-parity now tests against a STALE oracleEleven 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.