Skip to content

fix(ci): stop skipping conflicts, and keep branches current - #281

Closed
catomean wants to merge 1 commit into
mainfrom
ci-merge-train-honesty
Closed

fix(ci): stop skipping conflicts, and keep branches current#281
catomean wants to merge 1 commit into
mainfrom
ci-merge-train-honesty

Conversation

@catomean

@catomean catomean commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Ported from bitbaum/orangecat#645, where these two gaps stranded a PR for
hours and a third was found while auditing the fleet.

The merge train optimised for merging and had nothing to say about not
merging. Three different stuck states all rendered as a polite skip:

  • A conflicted PR was treated exactly like "not ready yet" and passed over
    in silence, every sweep, forever. Nothing else will unstick it, so silence is
    the wrong answer. Now it is logged to stderr and written to the job summary.
  • Nothing kept branches current, so a PR was merged against a base it may
    not have been proven against, and conflicts surfaced hours after the merge
    that caused them. Now a BEHIND branch is updated first — one per sweep, for
    the same reason only one PR is merged per sweep — which also makes conflicts
    appear minutes after the merge that caused them.
  • "No checks reported yet" is transient for a PR opened seconds ago and
    PERMANENT for an old one: GitHub does not retroactively run workflows on a PR
    nobody has pushed to. Over-2h-old checkless PRs are now surfaced in the job
    summary instead of waiting patiently forever.

Behaviour verified against the real script with a fake gh on PATH — conflict
reported and not merged; behind-updated and not merged; clean still merges
(no regression); old checkless PR surfaced; brand-new one stays silent.

🤖 Generated with Claude Code

@catomean

Copy link
Copy Markdown
Collaborator Author

Closing — this PR is fully superseded, not just conflicting.

PR #310 (merged 2026-08-16, after this PR was opened) deleted the local scripts/ci/auto-merge-sweep.sh and switched this repo's workflow to call the canonical sweep script in maonakamoto/dotfiles instead of carrying a local copy.

I diffed this PR's three intended fixes (loud CONFLICTING reporting, BEHIND branch auto-update, "no checks reported yet >2h" summary warning) against the canonical maonakamoto/dotfiles script that main now calls — they are byte-for-byte already present there (lines 307-410). The rebase conflict is on a file that no longer exists in this repo's tree.

There's nothing left to port; the fix already shipped fleet-wide via the canonical script. Closing rather than resolving a conflict against a deleted target.

@catomean catomean closed this Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant