Repository navigation
Conversation
…ard (AST-030 FR18)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
Contributor
PR Analysis Report
Generated by PR Enrichment workflow | View current CI run |
This branch was successfully deployed
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.
User impact
maininto a pull request reruns all of its CI, though the pull request's own change is the same one that already passed. Long-lived pull requests mergemainmany times a day, and each merge pays the full suite again.mainand the pull request's own diff is byte-identical to the previous head, whose run passed, the required checks (build,test,docsite-test,lint) pass at once and name the run they carry forward: "Carried forward from run N at ". Nothing is skipped silently.main's changes. A push that changes the pull request's diff, a filemainalso changed, an opened, reopened or ready pull request, a failed or cancelled previous run, and anything the step cannot read or compare all run normally. Merge-group entries,main, release checks andci:heavy-lanesowners are unaffected.Authority
Asked for by the CI owner, 2026-10-31: pull requests that receive hundreds of updates that only merge
main.spec:AST-030gains FR18 (and DEC-10, a Verification row and a CONTRIBUTING line). That needs an owner's/approve-specat this head.Changes
.github/actions/test-scope/action.yml(loaded from the merge commit, as ci: the interaction job loads the heavy-suite caps from the merge commit, not the pull request head #9005 loads heavy-caps): a newcarry-forwardinput. On the first attempt of asynchronizepush it compares the pull request's own diff (each file's status, names, blob and patch against the merge base) at the push's previous head with this head's file list; when they are identical and the same workflow's last completed run on the previous head passed, it reportscarried: true,carried_from: run N at <sha>,applies: false, and leaves a notice. A push that changes the diff makes one extra call; any error runs the job.ci.yml:docsite-test,test-ui,test-node,build-storybook,size-base,typecheck,test-build,pr-interaction,pr-interaction-webkit,native-swift-runnerand thetestjoin opt in and gainactions: read; every work step also requirescarried != 'true'(the interaction and Swift jobs already gate onapplies).buildnames the carried run frombuild-storybook.lint.yml: the scope step runs first withcarry-forward, and every later step skips when it carries.test-scope-action.test.mjs: carry cases (merge-only push after a pass; a failed, cancelled or unfinished previous run; a changed patch, blob, name or file set; truncated list; re-run; opened, reopened or ready; no previous head; another branch's run; a fork; unreadable runs or comparison).ci-carry-forward.test.mjs(new): evaluates every step condition of every opted-in job with a carried result and fails if any work step would still run; checksactions: read, thebuildnotice, and that the label opt-in owners do not carry. Mutation-checked: an unconditional step, or one condition without the carried check, fails it.Evidence
test-scope-action.test.mjsandci-carry-forward.test.mjs: 79 pass. Dropping the carried check from one step, or adding an unconditional step, fails the contract test.mainchanged the diff (maintouched the same files), followed a failed run, or happened while the pull request was a draft.Scope
Writing rubric results
main's change reaches, and carrying across line-offset-only differences.