mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-29 06:32:28 +00:00
U13. Turns the U1 instrument into a regression gate: `--check` asserts the
measured projection against a committed baseline, `--update-baseline` rewrites
it, and the benchmarks job runs the check.
Gated exactly, not budgeted. Two consecutive runs are byte-identical, so a
tolerance band would only hide real movement. Adding fixtures moves these
numbers and forces a rebaseline; that treadmill is the accepted cost of the
guard and the same trade `bench/scope-capture` already makes.
Both arms are gated, because they fail differently:
countArm call-only drop totals, split by site kind and by extension. The
per-extension split makes a single-language regression legible
instead of arriving as a moved total.
shapeArm the state of each receiver spelling by edge presence. This is the
only arm that can see `?.`, explicit type arguments and
`repos[0].save()` — they emit no edge AND no drop, so a count-only
gate is blind to them by construction.
Verified in both directions. At baseline, `--check` passes. With a real drop
injected into the corpus — `f!.make().persist()`, not a hand-edited baseline —
it fails and localizes:
countArm.callDrops: 99 -> 100
countArm.bySiteKind.call: 99 -> 100
countArm.callDropsByExtension..ts: 7 -> 8
Unlike its neighbours in that job this bench is NOT build-free: it runs the real
pipeline, so it needs dist/, which the setup action already builds. One run is
~2m15s against a 25-minute job budget that already carries eight steps — worth
watching on the first CI run rather than pre-emptively raising the timeout on a
guess.
|
||
|---|---|---|
| .. | ||
| actions | ||
| claude-canary-runtime | ||
| gitnexus-review-runtime | ||
| ISSUE_TEMPLATE | ||
| prompts | ||
| scripts | ||
| workflows | ||
| actionlint.yaml | ||
| CODEOWNERS | ||
| dependabot.yml | ||
| FUNDING.yml | ||
| PULL_REQUEST_TEMPLATE.md | ||
| release-drafter.yml | ||
| release.yml | ||
| vendored-grammars.json | ||
| zizmor.yml | ||