fix(actions): preserve draft and close cancellation contract - #933
fix(actions): preserve draft and close cancellation contract#933seonghobae wants to merge 5 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: Team 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.
Valid lifecycle-cancellation regression: removing converted_to_draft and closed stops these repository-local workflows from creating the same-concurrency-group event that cancels an already queued/in-progress Tests/PROV-O/Ontology run for this PR. The central current-head coalescer only retires redundant queued siblings and deliberately never selects an observed in-progress run; it cannot substitute for workflow-level cancellation of the sole active repository-local run. Preserve the no-runner Draft/closed behavior with job guards, but keep lifecycle events in the trigger so conversion/closure cancels stale local work before it consumes further capacity. Please repair with an executable regression covering all three workflows.
Outcome
Preserve repository-local workflow cancellation on pull-request lifecycle transitions without allocating product runners for Draft/closed states. Tests, PROV-O contract, and Ontology Pages retain
converted_to_draftandclosedevents in the PR-scoped concurrency domain; their product jobs still fail admission when the PR is Draft or closed.Finding → RED → causal repair
Review
5119691752found that the originald42bccf7c4e3fddf342a227d2c867e35da1560e4change removedconverted_to_draftandclosed. That prevents GitHub from creating the same-workflow/same-PR lifecycle run needed for workflow-levelcancel-in-progressto retire an already queued or in-progress repository-local run. The central current-head coalescer is not a substitute: it deliberately coalesces redundant queued siblings and never selects an observed in-progress run.b2ec8b53df37944e1fb96a68081ec28b46a6bd67strengthenstests/test_tests_workflow_contract.pyso all three repository-local workflows must keepconverted_to_draft/closedand must skip product jobs on closed/Draft events;8eff81f15eb12b54262393175915af661ba888fdrestores Tests lifecycle cancellation and documents the non-obvious no-job-run purpose;a6c149c9bf5cdb4ded78f6fc2332074ad7ef2aa7restores the same contract for PROV-O;de4e6cf9a48b042af0bb1128fa9b194abd1952a5restores it for Ontology Pages.Live lifecycle evidence
The PR was intentionally converted back to Draft on exact head
de4e6cf9a48b042af0bb1128fa9b194abd1952a5. The pre-transition Tests run33943475569on that same head completedcancelled; the converted-to-Draft successor run33943496485completedskipped. Its Full test suite and Frontend jobs both hadrunner_id=null, proving the lifecycle event cancelled stale work without allocating a product runner.PROV-O and Ontology Pages are path/base scoped to
main; because this PR remains stacked on #908, their current-head hosted product jobs are not claimed. The structural regression pins the same cancellation/admission contract for those workflows until the stack reachesmain.Stack / exact boundary
#908@00e90e03ae1afb7f13ae843dd578694d0f72b325(docs/public-surface-deepwiki)de4e6cf9a48b042af0bb1128fa9b194abd1952a5behind_by=0Keep Draft behind #908/#911. Do not self-approve, bypass, force-push, transfer predecessor GREEN/reviews, or remove lifecycle cancellation in pursuit of eliminating harmless no-job workflow records.