You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: heavy CI never runs on a PR whose base is a feature branch — lint.yml / ci.ymlpull_request triggers are limited to branches: [main], so six required contexts report nothing on such PRs (item 3 of #16149) #16482
Split out of #16149 by director ruling (decision batch #66, 2026-09-07, option C): this item stands on its own — it is true of any PR based on a feature branch, not only of stacked series, which merely exposed it.
Measured (#16149, triage re-verified on origin/main)
A PR whose base is a feature branch triggers neither workflow. Across the six-card #14478 stack every card PR showed 8–11 light checks (Auto Label, Check Changeset, PR Size, docs drift, …) and zero of Lint & Repo Gates, TypeScript Type Check, Test Core, Build Core, Dogfood Regression Gate, Temporal Conformance. The first real signal arrived at the trunk PR, after every card was written, reviewed and merged; correctness rested on local runs quoted into PR bodies — a discipline, not a gate.
⚠️ Runner cost rises: measure and state the expected increase (PRs per week with a non-main base × the heavy matrix) on this card before landing; if it is large, gate the heavy run on a label or on the base branch being an open PR's head rather than running for every feature-branch PR.
Pin: a workflow-lint test (or the existing ci-cd-pipeline-doc.test) asserting that every workflow producing a branch-protection-required check runs on pull_request for any base.
Split out of #16149 by director ruling (decision batch #66, 2026-09-07, option C): this item stands on its own — it is true of any PR based on a feature branch, not only of stacked series, which merely exposed it.
Measured (#16149, triage re-verified on
origin/main)A PR whose base is a feature branch triggers neither workflow. Across the six-card #14478 stack every card PR showed 8–11 light checks (Auto Label, Check Changeset, PR Size, docs drift, …) and zero of
Lint & Repo Gates,TypeScript Type Check,Test Core,Build Core,Dogfood Regression Gate,Temporal Conformance. The first real signal arrived at the trunk PR, after every card was written, reviewed and merged; correctness rested on local runs quoted into PR bodies — a discipline, not a gate.Scope
pull_requesttrigger, or add apull_requesttrigger without abranchesfilter for the heavy workflows), after reading and honouring the two comment blocks the current triggers carry:ci.yml:12-15(every workflow producing a required check MUST keep themerge_grouptrigger or queue builds wait forever) andlint.yml:16onward (the MEASURED 2026-08-25 / [finding] Merge-queue check-set parity for tree-global ratchets — measure which lint.yml jobs actually run on merge_group, then close the gap the stale-ledger outage rode through #12211 negative result), plus theconcurrencycancel policy atci.yml:17.mainbase × the heavy matrix) on this card before landing; if it is large, gate the heavy run on a label or on the base branch being an open PR's head rather than running for every feature-branch PR.ci-cd-pipeline-doc.test) asserting that every workflow producing a branch-protection-required check runs onpull_requestfor any base.Out of scope
Acceptance
merge_groupbehaviour unchanged (queue builds still report)Refs #16149, #12211, #12933.