Repository navigation
CI witness cost backout: trim the floor's enrolled roster by measured cost (103 -> 67 check fns) - #6437
Merged
Conversation
…measured cost, 103 -> 67 check fns (operator ruling 2026-07-10) Measured on run 29108981678 (ci job 1h0m50s): batch-2's 103 witnesses cost 15m06s, of which ONE witness (dag_collect_fingerprint_witness_keystone_holds) was 8m38s, five heavies ~2.7m, and the complexity-lens ~12s-eval family ~3.5m; the ~80-witness tail costs under a minute combined (p50=294ms). Cut by cost, not count: - unenroll dag_collect_fingerprint_witness_test (518s keystone, #6425 lane) - drop parse_table_memo_warm_equals_cold_content_hash (36s; the row's 4 governance REDs stay) - trim the five complexity/body-lowering suites (mine) from 39 fns to RED control + flagship positive each (10 fns) - KEPT: enforcement_live_witness_test (84s) and budget_roster_completeness (17s) - the section-6 lenses-must-be-live backstops that keep every other lens honest Every trimmed fn stays in its witness file and still runs on the local discovery path (claim_batch --roster-from-discovery); existence != enrollment. Receipts: main_wet regen zero artifact drift (witness entries are projected from the roster at floor runtime, not baked into ci.yml), drift gate PASS, kept-witness sanity run PASS. Expected effect: batch-2 15m -> ~2.5m. Remaining non-witness costs flagged for their own lanes: release-bin build (26m52s on any PR carrying .rs changes) and batch-4 emit_determinism gate (13m31s). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
The "CI FAILING (3 failing)" dashboard reading is the known superseded-run artifact, not a real failure: the draft-to-ready flip re-triggered CI under the concurrency group, cancelling the first run on this same head (29113213972, cancelled) and the WIP-head run (29113098355, cancelled). The live run is 29113261146 — ci_regen already green, ci and rust_tests in progress. No fix needed; this run doubles as the measured receipt for the trimmed floor. — sent from eager-ram-612 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI witness cost backout: trim the floor roster by measured cost, 103 → 67 check fns
Operator ruling 2026-07-10: "CI taking 1 hour is way too long … we'll need to back most out until we get performance under control."
How witnesses get into CI (the answer to "how are those selected")
Single authority:
commit_gate_rosterindag/gunbc/commit_workflow.dag. EachCommitWitnessClaim { entry, check_fns }row on theGithubActionsCiJobsurface is projected into the floor plan byproject_ci_floor_witness_entriesat floor runtime (receipt: this PR's regen produced zero ci.yml drift). Enrollment is opt-in (operator inversion 2026-07-04, which zeroed it); it accreted 0 → 103 check fns in six days as each merged lane enrolled its own witnesses.Where the hour went (measured, run 29108981678 — the 1h0m50s
cijob)Witness count ≠ witness cost: p50 witness = 294ms. Of batch 2's 15m, ONE witness (
dag_collect_fingerprint_witness_keystone_holds, #6425) was 8m38s; five heavies ~2.7m; the complexity-lens ~12s-eval family ~3.5m; the ~80-witness tail costs under a minute combined.The cut (by cost, not count)
dag_collect_fingerprint_witness_test(518s keystone).parse_table_memo_warm_equals_cold_content_hash(36s); the row's four governance RED controls stay.accumulator_copy_fold_analysis,complexity_accumulator_copy,fold_lowering,loop_multiplicity_measure,loop_infer_iteration.enforcement_live_witness_test(84s) andbudget_roster_completeness(17s) — the §6 "lenses must be live" backstops that keep every other lens honest. Highest displaced-cost-per-second on the roster; overrule if you want them out too.Every trimmed fn stays in its witness file and still runs on the local discovery path (
claim_batch --roster-from-discovery …); existence ≠ enrollment. Re-enrollment is a one-row edit when parse/resolve memoization lands.Expected effect: batch 2 ≈ 15m → ~2.5m.
What witness backout cannot fix (flagged for their own lanes)
emit_determinismgate: 13m31s, a single structural gate, not a witness entry.With this PR, a typical no-.rs-change PR's
cijob ≈ 2m build + ~9m floor. With .rs changes it's still ~27m build + ~9m floor until lever 1 lands.Durable fix candidate (follow-up, not this PR): enrollment rows declare a per-fn eval budget and the floor REDs a witness that exceeds it — cost-gated enrollment as a wall, so the roster can't silently re-accrete a 518s witness.
Receipts
main_wetregen: zero generated-artifact drift; drift gate PASS.quadratic_fold_has_suspectPASS wet against the trimmed roster entry.dag/gunbc/commit_workflow.dag(+5/−44).🤖 Generated with Claude Code