@@ -635,6 +635,38 @@ jobs:
635635 if-no-files-found : ignore
636636 retention-days : 1
637637
638+ # The durable half of #16173. The summary uploaded above is not only the
639+ # input to the NEXT refresh of scripts/test-shard-timings.json — it is
640+ # this shard measuring itself, right now, against the prediction the
641+ # partition step printed minutes ago. Nothing compared those two numbers,
642+ # and that is the whole defect: the dataset is generated, it rots in one
643+ # direction only (suites get slower, the file stays put), and a shard that
644+ # has drifted heavy reads as perfectly balanced until the job timeout
645+ # kills it. Measured: @objectstack/cli was predicted 458.15s and ran
646+ # 1231.52s — 2.69× — while this job's own max/mean banner read 1.00×.
647+ #
648+ # ⛔ The failure mode being closed is NOT a slow shard. It is that a
649+ # killed shard produces no reading at all while the rollup reads green
650+ # (#16157 remains open on that half), so the cost of letting this rot is a
651+ # PR that lands with a whole shard unmeasured. A comparison that only
652+ # warned would inherit exactly that: something true, printed, and unread.
653+ #
654+ # No `if:` — a suite that already failed must not also be charged with
655+ # drift, and the step is skipped for free when the job is already red. No
656+ # `continue-on-error` either: the point is the red. It sits ABOVE the
657+ # attestation pair for the #6082 reason documented on the upload above —
658+ # anything below that pair can fail a job whose credential already counts
659+ # as a pass — so a drift red also withholds the attestation, which is the
660+ # fail-closed direction.
661+ - name : Check this shard's predicted-vs-measured timing drift
662+ run : |
663+ if ! ls .turbo/runs/*.json > /dev/null 2>&1; then
664+ echo "No turbo run summary — nothing was measured, so there is nothing to compare."
665+ exit 0
666+ fi
667+ node scripts/partition-test-shards.mjs --check-drift .turbo/runs/*.json \
668+ --label "Test Core (${{ matrix.shard }}/6)"
669+
638670 # Runs even when the suite failed — that is when it earns its keep. It
639671 # answers TWO questions about a red suite, and needs both to be able to
640672 # say anything at all about a green one.
0 commit comments