fix(ci): retire queued runs when PR returns to Draft - #2537
seonghobae wants to merge 48 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head COMMENT review for f1823128a51d74590eec524e183a09fcbdd47f0f against main@37b10243cec3d160ecc9c1be75c71428b160a703. The four required workflows now subscribe to converted_to_draft, enter their existing per-PR concurrency group, and skip every ordinary entry job on a Draft payload before runner admission. Ready, push, schedule, and manual behavior remains governed by the existing conditions; scanner thresholds and permissions are unchanged. The executable contract covers all four workflow owners. I found no source-backed blocker in this exact diff. This COMMENT is not approval: four current exact-head runs are queued, earlier skipped replacements are not GREEN evidence, and qualifying independent approval is absent.
|
Fresh live confirmation of the incident boundary (2026-09-30): fast-mlsirm #2299 and #2301 were converted from Ready to Draft at unchanged exact heads |
|
stack-ordering을 current evidence에 맞춰 Ready→Draft/Proposed로 교정했습니다.
부모가 ordinary protected merge 및 terminal GREEN을 획득하기 전에는 이 자식도 Ready/merge 후보가 아닙니다. Close, bypass, Force Push, destructive rebase, manual rerun은 수행하지 않았습니다. |
|
Concurrent owner finding for exact head Resolve as one single-writer event contract, with RED fixtures for: (1) consumer Draft heads materialize CodeQL, (2) a transition back to Draft enters the same concurrency group and cancels stale Ready work without assigning a new scan, (3) native |
Preserve #2548 security and Maturin deltas while ordinary-merging current #2537. Use #2537's canonical consumer-Draft/native-owner/conversion event matrix and executable contract; replace only the corresponding Gap section without dropping unrelated evidence. No force update, status synthesis, or predecessor approval transfer.
|
Canonical current-head receipt Head |
Bound Draft/close cleanup to exact protected run identities, revalidate live run and PR authority across all active states, and fail closed without explicit central Actions authority.
Current authority — central stale-dispatch retirementExact head RCA repaired at the canonical
Exact-tree local evidence:
Post-publication GitHub reports open, Draft, and mechanically mergeable. Exact-head CodeQL/SAST entry work is skipped under the current Draft contract; OpenCode/Noema are queued and Strix transport is in progress. These are nonterminal/skipped lifecycle records, not acceptance evidence. Keep Draft / Proposed / merge HOLD until fresh hosted exact-head terminal evidence and a qualifying independent approval exist. No rerun, synthesized status, bypass, force update, Close, or merge was used. |
Cross-repository runtime evidence — Draft queue retirementFresh consumer evidence confirms this owner defect on an independently deployed repository:
This is queue-waste evidence, not acceptance evidence and not a request for a synthetic rerun/cancellation event. The consumer must not copy this owner workflow. The existing exact-head #2537 repair remains the canonical RED→GREEN path; integration/release/consumer rollout must retire such queued work automatically on future Draft transitions. #2537 remains Draft/Proposed on mutable prerequisite #2536, so this evidence does not authorize Ready, merge, bypass, or predecessor closure. |
|
New exact reproduction for the queue-retirement owner — consumer
This extends the stale-event acceptance contract: retirement must cancel obsolete work without emitting a false terminal failure from an No rerun, wake commit, synthetic status, bypass, merge, or evidence relabeling was performed. |
Preserve PR #2549's SBOM and docstring authority while integrating the complete valid #2537 control-plane ancestry. Resolve overlapping Maturin and queue contracts in favor of the newer hardened owner implementations; retain exact-active CodeQL deduplication, pre-validation cancellation removal, and runner-pool separation. Keep the result Draft/Proposed pending hosted exact-head Checks and independent approval.
|
Valid #2537 CodeQL admission repair has been carried into the canonical owner-union PR #2549 without retiring this predecessor.
Both PRs remain open/Draft as applicable. This records the verified successor carry path only; it does not authorize closure, merge, bypass, or predecessor retirement. |
|
Cross-repository admission RCA: LineageWeave#1142 exact head Exact checkout identity passed; osv-scan and Trivy passed; dependency-review's preflight compare endpoint returned HTTP 403 for public repository |
|
Fresh canonical queue/verdict evidence for current owner head Four current-head consumers now show the same boundary: dispatch succeeds, then Python/Actions compatibility jobs fail at “Release runner or enforce current-head CodeQL verdict” because no authenticated terminal verdict settled.
Each consumer has successful standalone CodeQL/security evidence where applicable, but that does not satisfy this compatibility contract. All four are Draft/merge HOLD. This is queue/verdict admission evidence, not justification for source-neutral reruns or bypass. |
|
Owner routing clarification for unchanged exact head The two fresh cross-repository specimens do not expand this PR's single-writer scope:
#2537 remains the Draft queue-retirement / stacked required-workflow-scope owner. No source, base, head, lifecycle, approval, or Check state changed; skipped Draft runs remain non-acceptance evidence. |
Fresh consumer reproduction — exact-head evidence (2026-10-01 UTC)No source or lifecycle mutation is requested by this note. Consumer: ContextualWisdomLab/feelanet-adfs#30 at exact head
This is a live post-RED consumer reproduction of the failure scene already codified here by State remains Draft / Proposed / merge HOLD. No force update, manual rerun, synthetic status, bypass, Draft/Ready toggle, merge, or replacement event generation was used. Model-review Ready-event materialization remains separately owned and is not smuggled into this CodeQL delta. |
Exact-head Ready admission — 2026-10-02Direct current-delta review found no new Critical/Important source finding, and all review threads remain resolved. The unchanged exact head Fresh exact-head results:
The authenticated coordinator dispatched successfully; both shards remain fail-closed until terminal GHAS/SARIF verdict settlement reruns those exact jobs. Qualifying approvals remain 0. No manual rerun, state cycling, synthetic result, auto-merge, or predecessor evidence transfer was used. |
2026-10-02 exact-head lifecycle correction
|
Current admission authority — 2026-10-01
3d2656bae0e38ce38c331037f0938b97bd4688cb; tree:c7f93c58c372c1519c48786273cecc242a70c770; base:#2536@6a37e4cdfbd8bf6f3a60645a0ad7c13e1b9c1ae3.18156473remains default-branch-only; feature-base stacked PRs do not gain central Security, SAST, or CodeQL admission by trigger broadening alone.2792c8512741f53632196e889778de82785d669e. It is mergeable, ahead 5 / behind 0, and preserves its 14-file security, Maturin, CHANGELOG, Gap, and lifecycle delta.Incident
A fresh organization-wide sample found that CodeQL PR, SAST Semgrep, Security Scan, and Python Security runs could remain queued after the pull request was converted back to Draft. The workflows had per-PR
cancel-in-progress: truegroups andready_for_reviewtriggers, but noconverted_to_drafttrigger, so the Draft transition could not enter the same concurrency group and retire the stale Ready run.RED
Added
test_converted_to_draft_retires_queued_run_without_runnerfirst.All four failures were the intended missing-event assertion.
GREEN
converted_to_draft;github.event.pull_request.draft != true;Local contract evidence:
Safety
The replacement Draft event reaches workflow-level concurrency and cancels the older same-PR run, then skips before runner admission. No required result is synthesized, no failed check is rerun or changed to success, and no model/provider path is introduced. No force push, destructive rebase, bypass, or merge was performed.
Acceptance
Ready is review admission only. Hosted exact-head checks and independent review remain mandatory before merge. After ordinary protected merge, verify one live Draft transition retires the older queued run for all four workflows without assigning a runner.
Stack repair (2026-09-30)
Retargeted from
main@37b10243cec3d160ecc9c1be75c71428b160a703to canonical security prerequisite #2531 (codex/security-baseline-final-20260930@d1aa3659fca527a6c7330151f3ab4df3d7578391). The semantic source tree remains unchanged fromf1823128a51d74590eec524e183a09fcbdd47f0f. A single empty fast-forward commitbf8acdc6855e854692b4bf940b97490400a9b33drefreshed Checks on the new base; no force update, approval, or merge was performed. Prior Python Security/Trivy failures were the inherited vulnerable PyJWT/PyO3 base and are not current-head GREEN evidence. Fresh mergeability and hosted Checks are required on the new stack.Current owner-stack integration (2026-10-01)
76aa57533b1332af2d3976e32437dba70fafe47a.github#2536@18c886cbb8c41f5f9c2bcae99640b97d53a4806ebf8acdc6855e854692b4bf940b97490400a9b33dand adopts the exact security/coverage owner head as the second parent36710180872, job109887107430, failed on PyO3GHSA-36hh-v3qg-5jq4andGHSA-chgr-c6px-7xpp; the canonical prerequisite already repairs and contracts those dependenciescf8fa367a590c97a440e434731d469909920e4bc, tree536bc45136c2c9ad406fac0dd54ec5caeb2f2ab2,force=falseNo predecessor result transfers. No force update, manual rerun, synthetic status, bypass, merge, or release was used.
Concurrent exact-head refresh (2026-10-01)
A concurrent ordinary child advanced this Draft PR from
76aa57533b1332af2d3976e32437dba70fafe47ato exact head37ce2e405ab96963a59c96e4e98024ab1a51af32(tree6c8b45a22253260c5d25e1ce1683115bec37f4ef) to restore the queue-health credential fallback. The current head is a one-parent fast-forward, and canonical base#2536@18c886cbb8c41f5f9c2bcae99640b97d53a4806eis an ordinary ancestor. GitHub re-evaluation reports mergeable.The effective base-relative delta remains bounded to the ten queue-retirement paths (+175/-18). Draft-event Security
36779949657, SAST36779949766, and CodeQL36779949579are skipped and are not passing evidence. Keep Draft/Proposed; retarget or integrate the newer #2040 successor only after its exact-head Checks and ownership boundary stabilize, without copying mutable source or force-updating this active writer.Latest review-authority restack (2026-10-01)
Exact head
0dacd79d00907c9c310a86f3a0cc423955eeb79c(tree1d5a611b1c1ad63a451b5c0114ee4146c5993981) is an ordinary two-parent merge of prior #2537 head37ce2e405ab96963a59c96e4e98024ab1a51af32and current base owner #2536 head6a37e4cdfbd8bf6f3a60645a0ad7c13e1b9c1ae3. The merge was conflict-free and preserves the complete ten-path queue-retirement delta while adopting the latest review-authority, Noema, Strix, and security contracts.Fresh local exact-tree evidence: queue-retirement contracts
25 passed; integrated parent contracts62 passed, 2 optional skips; unfiltered warning-fatal repository suite5,261 passed, 5 optional skips, 40 subtests; the only changed production module reports 10/10 documented (100%); compileall, diff-check, conflict-index, ordered-parent, and tree-SHA verification pass. The branch remains Draft/Proposed. Fresh hosted exact-head evidence and an independent current-head approval are required before Ready or merge. No force update, bypass, manual rerun, synthetic status, or predecessor-GREEN transfer was used.Stacked required-workflow scope correction (2026-10-01)
3d2656bae0e38ce38c331037f0938b97bd4688cb(ordinary child off79c8f2e1d1a7d2e1db94ae3fbfc120aa827e716, treec7f93c58c372c1519c48786273cecc242a70c770,force=false)18156473beyondref_name.include=["~DEFAULT_BRANCH"]; feature-base stacked PRs therefore do not materialize central Security, SAST, or CodeQL through that rulesetgit diff --checkpassesCONTROL-STACKED-REQUIRED-WORKFLOW-SCOPE-01records the causal owner, exact consumer canaryContextualWisdomLab/OpenCode#3@c15dabc5…, and the prerequisite-merge/retarget lifecycle