fix: stop stranding sibling-update PRs on non-required checks, stale duplicates, and merge commits - #2
Merged
Mearman merged 1 commit intoSep 7, 2026
Conversation
…duplicates, and merge commits Three related defects left every automated documents.js bump PR unmerged in novus-power/hive today: the merge step treated ANY non-success check-run conclusion as a hard failure, so a bot-authored PR whose review check refuses to run at all (a caller-side allowed_bots gap) could never merge even once every check GitHub actually requires had passed. Both merge paths now attempt the rebase-merge once checks stop being pending and let GitHub's own required-status-checks decide, rather than pre-judging every check-run's own conclusion. bump-and-open-pr never closed an older open PR for the same package when a newer release superseded it mid-flight, leaving one PR per version piling up during a burst of releases. It now closes and deletes the branch of any other open sibling-update/<package>-* PR before opening the new one. heal-stranded-prs' behind-but-mergeable path called the update-branch REST API, which only performs a merge update -- it has no rebase mode -- leaving a real merge commit on the PR branch. A repo requiring linear history (hive's required_linear_history ruleset, its Staged-file guard) then permanently refuses to rebase-merge that PR at all. Replaced with a real git fetch+rebase+force-push.
Mearman
marked this pull request as ready for review
September 7, 2026 06:46
Mearman
deleted the
fix/supersede-stale-bumps-and-required-check-merge-gate
branch
September 7, 2026 06:46
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. |
|
🎉 This PR is included in version 1.0.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes three confirmed root causes behind every automated
documents.jsbump PR sitting unmerged innovus-power/hivetoday (15 open PRs, oldest 18+ hours old):novus-power/hive's own Claude Review action refuses to run at all for a bot-authored PR unless the bot's login is inallowed_bots(a caller-side config gap, being fixed separately in that repo). That review check-run then concludesFAILUREon every bump PR -- not because of a real finding, just because the action refused to start -- and this workflow treated any non-success/skipped check-run as a hard failure, so it never even attempted the merge once GitHub's own actually-required checks had passed. Both merge paths now just attemptgh pr merge --rebaseonce every check-run stops being pending, and let GitHub's real required-status-checks list decide.bump-and-open-prnow closes and deletes the branch of any other opensibling-update/<package>-*PR before opening the new one.update-branchcreates a real merge commit.heal-stranded-prs' behind-but-mergeable healing path called theupdate-branchREST endpoint, which only performs a merge update (no rebase mode). On a repo with arequired_linear_historyruleset, that merge commit permanently blocks the PR from ever being rebase-merged -- confirmed directly againstnovus-power/hive#1600, which accumulated two such merge commits during today's release burst and could no longer merge at all. Replaced with a realgit fetch+rebase+--forcepush.Test plan
actionlint -ignore 'property "automerge_app_private_key" is not defined'-- clean (had to fix one genuine shellcheck false positive on the new jq filter along the way,# shellcheck disable=SC2016with an explanation)npx prettier --check .-- cleannovus-power/hive's own stranded PRs get healed by the nextheal-stranded-prsrun (a push to itsmain), and the nextdocuments.jsrelease should open, and actually merge, a single clean bump PR.