GitNexus/gitnexus/bench
Gergo Magyar caf6b6a321 bench(receiver-resolution): gate the drop counts and shape states in CI
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.
2026-07-30 18:19:58 +00:00
..
callable-value-flow fix(scope-resolution): parse def coordinates after file paths (#2743) 2026-07-30 07:34:32 +01:00
cfg feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
cross-repo-trace feat(group): resolve cross-file named HTTP handlers (#2275) (#2277) 2026-06-23 12:12:49 +01:00
emit-persistence feat(spring): build bean candidate inventory (#2494) 2026-07-20 09:28:23 +01:00
impact-pdg fix(impact-pdg): make the Impact PDG Mutation Report workflow pass (3 latent oracle bugs) (#2258) 2026-06-20 20:40:28 +01:00
python-scope fix(resolution): type inline constructor receivers in every spelling (#2708) (#2737) 2026-07-29 16:19:53 +01:00
receiver-resolution bench(receiver-resolution): gate the drop counts and shape states in CI 2026-07-30 18:19:58 +00:00
scope-capture fix(test): give the JS construction fixture a javascript- prefix, and document the hooks (#2708 follow-ups) 2026-07-30 18:18:30 +00:00
scope-emission fix(scope-resolution): resolve calls through a closure-valued binding across languages (#2693) (#2695) 2026-07-27 07:52:18 +01:00
spring-conditionals feat(spring): model profiles, conditions, and auto-configuration (#2678) 2026-07-28 07:05:41 +01:00
parse-throughput.md fix(parse): correct worker-pool docs drift + surface worker-side stack on crash (#2068) (#2070) 2026-06-08 07:20:12 +01:00