Skip to content

Commit 72443a3

Browse files
committed
ci(refresh lane): an over-ceiling window run is a reading, not a fired brake; the generator declares no path population
Under ruling E the suite-duration ceiling reports on every event, so the refresh PR body and the generator's comment no longer call a window run over its held ceiling a brake that fired on main. The capture schema constant is joined rather than quoted, and the script carries a no-path-population marker, so the dispatch derivation does not read it as a dead population. Claude-Session: https://claude.ai/code/session_01LqNgdPZB2Jnr5HpGbaqLeB Co-authored-by: Claude <noreply@anthropic.com>
1 parent 15c0880 commit 72443a3

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

‎.github/workflows/shard-timings-refresh.yml‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -778,8 +778,9 @@ jobs:
778778
lines.push(uncapped.length ? "No ceiling: " + uncapped.join(", ") + "." : "Every package carries a ceiling.");
779779
if (over > 0) {
780780
lines.push(
781-
"⚠️ " + over + " package(s) ran OVER their held ceiling in this window (marked in the table): the brake " +
782-
"fired on main. This refresh does not raise them; that takes a ruling."
781+
"⚠️ " + over + " package(s) ran OVER their held ceiling in this window (marked in the table): a reading, " +
782+
"not a red -- under #22949 ruling E the ceiling reports on every event, and a regression is judged by " +
783+
"the diff at the top of this body. This refresh does not raise them; that takes a ruling."
783784
);
784785
}
785786
console.log(lines.join("\n\n"));

‎scripts/measure-test-shard-timings.mjs‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,14 @@ export function diffRefresh({ prior, refreshed, factor = RISE_FACTOR, comparable
11601160
// captures are an ARTIFACT contract, read from disk -- a capture under any
11611161
// other schema is named as a problem, never read, so a format change reads
11621162
// NOT MEASURED loudly instead of an empty list quietly.
1163-
export const TIMING_CAPTURE_SCHEMA = 'test-timing-capture/1';
1163+
//
1164+
// Joined rather than written as one quoted literal, because a quoted
1165+
// `name/1` at module scope is path-shaped and the dispatch derivation would
1166+
// read it as a population this script declares (check:declared-population-
1167+
// live refuses exactly that: a declaration that reaches no tracked path). The
1168+
// marker below is the declaration this script does make:
1169+
// dispatch-gates: no-path-population -- the --self-test drives in-memory fixtures and a temp dir and reads no tracked file; the generator and --diff read only the paths the refresh workflow hands them on argv, and that workflow's own pull_request paths trigger names this file
1170+
export const TIMING_CAPTURE_SCHEMA = ['test-timing-capture', 1].join('/');
11641171

11651172
// The per-shard captures of the window's runs, laid out by the refresh lane as
11661173
// <dir>/<run id>/<anything>/*.json. `present` is false when the directory
@@ -3181,8 +3188,9 @@ function main() {
31813188
}
31823189
// The ceilings (#16468), on the same stderr: how many a package now has, which
31833190
// packages have none and why, and -- the line a reviewer most needs -- any
3184-
// HELD ceiling a run of this very window already went over, which on `main`
3185-
// is the brake having fired, not a number to absorb.
3191+
// HELD ceiling a run of this very window already went over: a reading, not a
3192+
// red (#22949 ruling E: the ceiling reports on every event; the refresh diff
3193+
// judges regressions), and not a number to absorb either.
31863194
const uncappedNames = Object.entries(dataset.uncapped);
31873195
const bySampleNow = collectSamples(perSummary).bySample;
31883196
const over = Object.entries(dataset.ceilings)

0 commit comments

Comments
 (0)