Repository navigation
fix(ci): re-run ci-status on lanes App pull requests once the kill switch is lifted - #10282
Conversation
…itch is lifted While CLAUDE_LANES_DISABLED or CLAUDE_LANES_REPO_DISABLED is on, ci-status fails every lanes App pull request, and nothing re-ran it once the switch was lifted. The lost-run reconciler, which reads nothing while the switch is on, now re-runs the failed ci-status of each open lanes App pull request whose newest pr-require-checks run failed on its first attempt only in ci-status, with ci-status's kill-switch annotation. The re-run is recorded as attempt 2 so pr-verify trusts it, and shares the cap of 3 per run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed No security findings. critical-findings: 0 What I read: the whole diff (6 files) and the PR context. I also read Trusted-path touch: the only trusted-path file changed is
New
Manifests, instruction surfaces, hold: the diff has no plugin-manifest changes and no instruction-surface deletions. No CRITICAL finding, so no |
|
claude-review reviewed No findings. I read the full diff, the PR context and closing issue #9522, and the surrounding code in Closing issue #9522 ("Lifting the kill switch leads to a ci-status re-run on each open lanes App pull request within one scheduled interval ... with no per-PR polling while the switch is on"): met.
Checks I made:
Spend: this adds at most 3 The changed paths under the trusted globs are |
|
The pr-unblock lane stopped on this pull request and needs a person: the merge stages a change under .github/workflows/, which the lane does not push.
To resume, deal with the reason above, remove the gh workflow run pr-unblock.yml -R melodic-software/claude-code-plugins -f pr-number=10282 -f activity=resolve-conflicts |
…fter-kill-switch reconcile.mjs takes both import sets: the PR's AGGREGATE_JOBS and FAILED for the switch kind, and main's LOST for #10269's lost-again summary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lanes-hold step's comment and error text in pr-require-checks.yml now name maintenance-reconcile-lost-runs as what re-runs ci-status once both switches read false, as #9522's criteria require. The pinned prefix "the lanes kill switch is on (" and the following exit 1 are unchanged. Refs: #9522 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #9522
Summary
While
CLAUDE_LANES_DISABLEDorCLAUDE_LANES_REPO_DISABLEDis on,ci-statusfails every lanes App pull request (the lanes-hold step inpr-require-checks.yml). Nothing re-ran it once the switch was lifted, so open lane PRs stayed red until a push or a manual re-run. The existing reconciler did not cover the case: its flake re-run skips a run where onlyci-statusfailed (infra-failure.mjsfirstFailure).Fix
maintenance-reconcile-lost-runsgains one more re-run kind,switch. It reuses the reconciler's half-hourly schedule, record uploads, cap and act-time re-check. It adds no new workflow, token, permission or secret.merge.agent-identity, typeBot) whose newestpr-require-checkspull_request run meets all of these:ci-statuswas its only failed job;ci-status's check-run annotations includethe lanes kill switch is on.reconcile-rerun-<id>-2-<head>, sopr-verifytrusts the attempt 2.pr-verifytrusts only a recorded attempt 2.Criteria:
ci-statusre-run on each open lanes App pull request the switch failed, at most 3 per reconciler run (one half-hourly interval for up to 3 pull requests).ci-statusfailure for any other reason (a body or member hold, a lane failure, a title) is not re-run by this kind.Verification
node --testin.github/scripts/maintenance-reconcile-lost-runs: 106 pass, 0 fail (reconcile 82, including 7 new tests).exit 1inpr-require-checks.yml's lanes-hold step.actionlintandzizmor --offlineonmaintenance-reconcile-lost-runs.yml: clean.check-changelog-fragments.sh --checkand--check-required origin/main: pass.Related
ci-status.ci-statusstays red after this re-run until those lanes are re-run. The reconciler already lists those for a person, because the review lanes refuse a github-actions[bot] re-run.🤖 Generated with Claude Code