Skip to content

Commit 47e2f0d

Browse files
committed
fix(bench): exempt 3.12.0 No-op rebuild from perf-canary regression gate
CI runner variance on the sub-30ms native no-op rebuild metric caused a false positive (+396%, threshold 100%) on run 27455727444. None of the code paths modified by this PR execute on the no-op path — the Rust pipeline returns at the early-exit branch after Stage 3 before any of the changed find_enclosing_caller / EDGE_NODE_KIND_FILTER code runs. Same pattern as 3.11.2:No-op rebuild.
1 parent 91eb078 commit 47e2f0d

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

tests/benchmarks/regression-guard.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,18 @@ const SKIP_VERSIONS = new Set(['3.8.0']);
309309
* 3.11.2:1-file rebuild entry above. Remove once #1440 lands warmups and
310310
* 3.13+ data confirms the steady state.
311311
*
312+
* - 3.12.0:No-op rebuild — CI runner variance on a sub-30ms native metric.
313+
* The 3.12.0 incremental-benchmark baseline captures noopRebuildMs=23; the
314+
* per-PR perf-canary for PR #1468 (enclosing-caller attribution fix) measured
315+
* dev at 114ms (+396%, threshold 100%) on run 27455727444. None of the code
316+
* paths changed by that PR execute during a no-op rebuild — the Rust pipeline
317+
* returns at the early-exit branch after Stage 3 (detect_changes) with zero
318+
* file changes, before any extraction, edge building, or the modified
319+
* find_enclosing_caller / EDGE_NODE_KIND_FILTER code runs. Root cause is
320+
* shared-runner scheduling jitter amplified by the sub-30ms baseline, identical
321+
* to the 3.11.2:No-op rebuild pattern. Remove once 3.13+ data confirms the
322+
* steady-state.
323+
*
312324
* NOTE: WASM *timing* noise no longer needs per-version entries here — it is
313325
* handled structurally by WASM_TIMING_THRESHOLD (see above). The 3.11.x
314326
* entries that remain are kept because they trip the *native* engine too
@@ -330,6 +342,7 @@ const KNOWN_REGRESSIONS = new Set([
330342
'3.11.2:Full build',
331343
'3.12.0:Full build',
332344
'3.12.0:1-file rebuild',
345+
'3.12.0:No-op rebuild',
333346
// tree-sitter-erlang devDependency removed (GHSA-rphw-c8qj-jv84 — malware).
334347
// The erlang WASM is no longer built, so erlang resolution drops to 0%.
335348
// These entries exempt the expected precision/recall drop on every build

0 commit comments

Comments
 (0)