From d1cb32a3b916e392020a8736a1843075172d6485 Mon Sep 17 00:00:00 2001 From: kjgbot Date: Sat, 5 Sep 2026 21:50:16 +0200 Subject: [PATCH] ci: run the artifact workflow on push to main Nothing verifies main. `cloud-runtime-artifact.yml` triggered only on `pull_request` and `workflow_dispatch`, and `review-swarm.yml` only on `pull_request` -- so a PR is checked at its own head and never as merged. That gap is not theoretical. Twelve PRs merged on 2026-09-05, all in interacting areas -- the exactly-once claim path (#171, #182), resume adoption (#177, #186), the authored-flow executor (#184, #187), the CLI run loop (#180) -- each green on its own branch, and the composed tree never run until I dispatched it by hand tonight: run 33987924703 workflow_dispatch main completed/success ed917bfd Main is fine. But nobody knew that, and finding out required knowing to ask. Without this, a bad compose surfaces as an UNRELATED PR going red, which is the most expensive way to find it: the author debugs their own change first, then the base, then eventually the merge that broke it. Tonight already produced three separate cases of a failure on one PR belonging to something else entirely (#179, #185, and the #174 chain), and each cost a tick to attribute. Paths are deliberately not filtered on the push trigger. On a PR the question is "does this change affect the runtime"; on main it is "is the tree good", and a docs-only merge can still land on a tree that someone else broke. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FtQSAcGDta5VH9xiZFT4sR Session-Id: c228933d-4f94-4d83-9a9a-daf3c83b94f1 --- .github/workflows/cloud-runtime-artifact.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/cloud-runtime-artifact.yml b/.github/workflows/cloud-runtime-artifact.yml index 3c1ad75f..925c260e 100644 --- a/.github/workflows/cloud-runtime-artifact.yml +++ b/.github/workflows/cloud-runtime-artifact.yml @@ -2,6 +2,20 @@ name: Relayflow v2 Cloud runtime artifact on: workflow_dispatch: + # Also on push to main, because a PR is checked at its own head and never as + # merged. Every PR squash-merges onto a main that has moved since its CI ran, + # so the composed result was going unverified: on 2026-09-05, twelve merges + # landed in one evening across the exactly-once claim path, resume adoption + # and the authored-flow executor -- each green on its own branch, none of them + # ever run together until this was dispatched by hand. + # + # A broken compose would otherwise surface as an unrelated PR going red, which + # is the most expensive way to find it: the author debugs their own change + # first. Paths are deliberately NOT filtered here -- on main the question is + # whether the tree is good, not whether this commit touched the kernel. + push: + branches: + - main pull_request: paths: - ".github/workflows/cloud-runtime-artifact.yml"