Repository navigation
test(ci): enforce candidate validation before aggregate planning - #2433
Merged
Merged
Conversation
This was referenced Oct 19, 2026
schlessera
marked this pull request as ready for review
October 19, 2026 07:35
schlessera
marked this pull request as draft
October 19, 2026 07:59
schlessera
marked this pull request as ready for review
October 20, 2026 12:06
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.
Refs #2400
What changed
The hosted aggregate validates the candidate before planning selections. A spawned draft/no-token regression executes the real aggregate with
GITHUB_ACTIONS=trueand requires the live-readiness refusal. Missing selection outputs make a removed or reordered candidate call fail immediately at the named assertion, without computing a whole-repository plan fixture. Both gates retain their existing acceptance rules.Why this shape
This covers the executable-entry-point gap from #2363 while keeping the regression fast. The refreshed contribution preserves both independently audited producer binders, their frozen positives and source/installation drift refusals. Main's
BRAIN_SELECTED_PROOF_RECEIPTand bothMERGE_CONSUMER_RECEIVES_VALIDATED_SELECTED_INVENTORYassertions survive the merge. No qualification digest was repinned, production behavior changed or retention saving claimed.Proof
Fresh local proof uses head
9180099d26bf5c6ee337fd37a4f0e23d60a322e7, base3f6008994c032939cca43cdf991f3efd86e742ec, tree534ff023d4459496130061042a522352fca24642. This clean candidate preserves original headcc98b95e81a2ab2a1444f0073b18d2d49b264827through a normal history-preserving merge. Independent live main matched the recorded base before and after each allocated stage.Fresh receipts, 2026-10-20:
AGGREGATE_MUST_REQUIRE_LIVE_DRAFT_READINESS: expectedDraft proof requires live read-only GitHub readiness verification, receivedCandidate selection cadence is missing or inconsistent. No module-load error or timeout substitutes for that assertion.await requireCandidate(...)call exits 1 at the same intended assertion. Both mutations were restored byte-for-byte. The restored named test passes 1 test / 3 assertions in 146 ms; the final restored focused suite also passes it.bun run typecheckpasses.bun run check:pr --base origin/mainpasses once: all metadata/contribution gates, 970 fast tests / 6,438 assertions, then 73 import-graph feedback tests / 6,323 assertions. These batches may overlap. Total command wall time is 184.29 s.git diff --checkpasses.These receipts use Bun
1.4.2+744846f84, a fresh private-cache frozen copyfile install matching qualified installation identity0c2758c046f2b69d5f33b66521baf3098db5f44256b73ec96961c98d381e6245, ordinary UID, owned temporary storage, read workspace access and the unchanged offline preload/deadlines. Proof commands run with no external route and dropped capabilities. Source, lockfile and installed bytes remain unchanged after restoration. Receipt IDs retained for review:old_order_red,restored_green,removed_call_red,focused,strict_types, anddefault.The single inspected plan and actual preflight selection agree: global, all 19 packages, 48 fast files, types and packaging selected, all hosted category flags true. The 1,130-file complete unit discovery is planned inventory, not executed proof. Complete selected hosted proof for this refreshed candidate remains pending; the PR stays draft.
Preserved failed confirmation
Run 39216998411, attempt 1 remains failed for old head
cc98b95e81a2ab2a1444f0073b18d2d49b264827, base90a95123cfceb169bd2ecf7c213544db742eaed7, actual merge checkout7d202bc304fe14d2509ec8c14dcee30da65ca5b7, tree2a641151375ba62ccce2b03d9b1e93fd060e664b. Browser (2) exceeded the unchanged 15-second module-settings dark/320 whole-case deadline; the aggregate correctly rejected the failed browser category. The other 15 jobs passed. Original raw local receipts and the original checkout were not recovered; historical local claims are not reconstructed or relabelled as fresh proof.Since that run, #2442 delivered the module-settings purpose partition and overlay motion correction, and #2455 delivered destination-specific paint partitioning. These changed inputs support renewed qualification under the campaign ruling. They do not establish the historical cause, repair or waive #1229/#2441, or make this candidate's pending hosted proof green.
Checklist
Anything left open
Complete selected hosted confirmation, current head/base/synthetic-checkout validation, matching-tree merge and actual-main qualification remain with the coordinator. This is a
Refs #2400slice until its full acceptance and verification criteria qualify. #2400 remains open with its canonicalBlocked by #1229declaration; the unresolved causal criteria in #1229/#2441 and all historical failed identities remain intact. Local passing receipts do not replace those obligations.