Skip to content

fix(ci): decide the interaction proofs' scope from the pull request head - #8457

Closed
vjeux wants to merge 1 commit into
meta:mainfrom
vjeux:fix/interaction-scope-head-checkout
Closed

vjeux wants to merge 1 commit into
meta:mainfrom
vjeux:fix/interaction-scope-head-checkout

Conversation

@vjeux

@vjeux vjeux commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

User impact

Pull requests cut before #8043 that change a component fail pr-interaction ("playwright.interaction.config.ts does not exist"), and test with it: #8229 (approved), #8055 and #8056 so far. The routing's own rule is that such a head passes with the "Interaction proofs predate this branch" notice.

Problem and solution fit

  • Why does it fail? The proofs run on the head, which has no config. The decide step skips such a head only when the pull request's own diff leaves the config alone (one that deletes it still fails), asking pr-scope-touches.sh, which diffs from the merge base to HEAD.
  • Why did the helper see the config change? interaction-scope checked out GitHub's merge commit, not the head. On feat(Popover): presentation — a BottomSheet on a phone when asked, as iOS presents a popover #8229 the event's base was 17fead75b9, before test(interaction): real touch input for browser interaction proofs #8043, while the merge commit sits on main, so the diff counted what main gained since, the config included, as the pull request's change.
  • Why does that matter? Every such branch is blocked, and any branch whose reported base lags main has main's newer changes counted as its own, which can also put out-of-scope pull requests on 4-core runners.

Checking out the head, as the helper expects and pr-a11y does, fixes it.

Expected behavior and authority

The decide step's contract, in its comment and in .github/scripts/ci-interaction.test.mjs: a head cut before the proofs passes with a notice; one that deletes their config still runs them. spec:AST-030 FR9: routing tests are mutation-sensitive; this adds the missing near miss, a base that lags main.

Smallest restoration

One ref: ${{ github.event.pull_request.head.sha }} on interaction-scope's checkout, with a comment. The decide script, helper and pr-interaction are unchanged.

Evidence

  • Reproduction before the change: on main's workflow the new test gives applies=true for a head cut before the proofs with the base it was cut from, as in the feat(Popover): presentation — a BottomSheet on a phone when asked, as iOS presents a popover #8229 run.
  • Result after the change: applies=false with the notice, with that base and the current one.
  • Representative unchanged path: heads that carry the proofs or delete their config still give applies=true; existing cases are unchanged.
  • Regression test or other mutation-sensitive proof: the new test builds the history in a bare origin (a base, main gaining the config, three heads and their merge commits), clones what the job's checkout names, and runs the step with the repository's helper. Removing the ref fails it.

Scope

  • One defect is restored.
  • Separable contradictory or unsettled tagalongs were removed or split.
  • No new public API, visual representation, default, or interaction model is hidden under the bug-fix label.
  • Public text and artifacts contain no internal Meta context.

Testing

interaction-scope checked out GitHub's merge commit, but its helper diffs
from the merge base to HEAD and expects the pull request head (as pr-a11y
checks out). When the reported base lags main, the diff counted what main
gained since (the proofs' own config, once they landed) as the pull
request's change, so a head cut before the proofs ran them on a tree with
no config, and failed.

The new routing test builds that history for real (a bare origin with the
base, main gaining the config, heads and their merge commits), clones what
the job's checkout names, and runs the step with the repository's helper.
@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astryx Ready Ready Preview Oct 25, 2026 10:28pm UTC

Request Review

@astracat-bot

astracat-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
🟢 Reviewed (for maintainers only) Oct 25, 2026, 10:42 PM UTC

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Analysis Report

📚 Storybook Preview

View Storybook for this PR

🧪 Sandbox Preview

View Sandbox for this PR

No new or modified components detected.

Bundle Size Summary

No component packages changed.

Accessibility Audit

Status: No accessibility violations detected.

Visual Regression

48 of 502 shot(s) changed.

A change here is a question, not a failure: check whether the after is the
picture you intended. Record that review on the PR. Baseline maintenance is an
explicit dispatch of CI; this report never rewrites the baseline or adds a release gate.

component story theme mode pixels
Selector Indicator Space Bottom Sheet Narrow End RTL neutral light 753,933
Selector Indicator Space Bottom Sheet Wide Start neutral light 740,072
RichTextEditor Markdown parity: side by side probe dark 556,900
RichTextEditor Markdown parity: side by side probe light 538,816
Chat Full AI Chat probe light 230,823
Chat Full AI Chat probe dark 229,805
AppShell With Mobile Nav probe light 217,010
AppShell With Mobile Nav probe dark 216,960
Collapsible Dividers probe dark 66,445
Collapsible Dividers probe light 66,445
AppShell Playground neutral dark 65,198
AppShell Playground neutral light 63,788
Chat Default neutral dark 36,304
Chat Default neutral light 35,767
Chat Empty State probe light 23,531
Chat Empty State probe dark 22,622
ChatAutoScroll Scroll Behavior Comparison neutral dark 15,378
ChatAutoScroll Scroll Behavior Comparison neutral light 14,107
Chat With Attachments probe light 13,406
Chat With Attachments probe dark 11,232

and 28 more.


Generated by PR Enrichment workflow | Storybook | Sandbox | View full report

@vjeux

vjeux commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #8812, which makes interaction-scope check out the pull request head (and native-swift-scope the head or the queued merge), with routing tests that include a head cut before the proofs. Closing this one; the branch stays.

@vjeux vjeux closed this Oct 28, 2026

This branch was successfully deployed

1 active deployment
Preview — ec3e4487 Deployed Oct 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant