Skip to content

feat: keep merge picks through auto-merge and automatic merge-queue kick-outs - #201

Merged
kixelated merged 2 commits into
mainfrom
docs/complete-auto-merge-pick
Oct 23, 2026
Merged

kixelated merged 2 commits into
mainfrom
docs/complete-auto-merge-pick

Conversation

@kixelated

@kixelated kixelated commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Problem

/quest-complete asks about every PR, including ones the maintainer already approved for merging. A PR that gets kicked out of the merge queue for a conflict or a failing check also comes back to the user, even though nothing about the pick changed.

Behavior

  • GitHub auto-merge is a merge pick. Enabling it takes write access, and GitHub disables it when someone without write access pushes. /quest-complete doesn't ask about such a PR. It watches it like an enqueued PR and dispatches /quest-merge only when the PR stalls.
  • quest status reports landing-stopped: GitHub's reason the latest merge-queue entry or auto-merge ended (merge_conflict, failed_checks, manual, manually_disabled, merged, …), who ended it, and when. It comes from RemovedFromMergeQueueEvent.reason and AutoMergeDisabledEvent.reasonCode.
  • Automatic kick-outs re-merge. After merge_conflict or failed_checks, /quest-merge takes the PR again, fixes it, and lands it, and /quest-complete re-dispatches /quest-merge under the same pick. Any other reason, such as a person dequeuing the PR or disabling auto-merge, still goes back to the user.
  • The dequeue warning no longer says the PR "waits on the user again". It points at landing-stopped instead.

Supersedes kixelated/quest#200, whose quest/-only auto-merge didn't require a maintainer's approval.

Limitations

  • GitHub merges once the required checks pass, so a hand-enabled auto-merge skips the guide's one-review rule. Enabling it is the maintainer accepting the PR as it stands.
  • Re-dispatching applies to kick-outs seen while /quest-complete or /quest-merge is watching. A later session that finds a PR kicked out still asks.

Validation

  • New status test covers both event types. The hold test is updated for the new warning.
  • Checked quest status against real PRs: moq-dev/moq#6528 shows failed_checks, moq-dev/moq#6522 shows merge_conflict, and kixelated/quest#183 shows manually_disabled.
  • just check and just test pass (460 tests + 333 Worker tests).

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits October 23, 2026 11:27
…lete

Enabling auto-merge takes write access and GitHub disables it on a push
from anyone without write access, so it carries a maintainer's approval.
quest-complete stops asking about those PRs and only dispatches
/quest-merge when one stalls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tic kick-outs

quest status prints landing-stopped: GitHub's reason the latest merge-queue
entry or auto-merge ended, who ended it, and when. After merge_conflict or
failed_checks, /quest-merge and /quest-complete keep the merge pick and land
again; a manual removal still goes back to the user.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title docs(skills): treat GitHub auto-merge as the merge pick in quest-complete feat: keep merge picks through auto-merge and automatic merge-queue kick-outs Oct 23, 2026
@kixelated
kixelated marked this pull request as ready for review October 23, 2026 19:13
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T19:14:42.833693Z 9bcb663 Draft marked ready
🔒 Security Review 🔄 Running since 2026-10-23T19:13:11.439029Z 9bcb663 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9bcb663df5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread assets/skills/complete.md
Include a brief summary of each PR.
Act on a PR only after the user picks its action in this session, including PRs found on a later refresh.
GitHub auto-merge is that pick: enabling it takes write access, and GitHub disables it when anyone without write access pushes.
Do not ask about a PR with auto-merge enabled; watch it like an enqueued PR, and dispatch `/quest-merge` only when a conflict, failing check, or review finding stalls it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve the required-review gate for auto-merge picks

For a nontrivial PR with auto-merge enabled but no qualifying review, this instruction only watches it and never dispatches /quest-merge unless another problem appears. In repositories where GitHub does not enforce the guide's review requirement through branch protection, the PR can therefore merge as soon as CI passes without the required review. Treat auto-merge as the user's pick, but still verify the review prerequisite and handle its absence before allowing landing; enabling auto-merge does not satisfy the explicit review requirement in assets/AGENTS.md.

AGENTS.md reference: assets/AGENTS.md:L157-L159

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disagree. This trade-off is intentional and listed under Limitations: when a maintainer enables auto-merge by hand, they're accepting the PR as it stands. The guide's review rule covers when an agent lands a PR. It doesn't cover a maintainer's own merge action. To hold the PR for a review, quest-complete would have to disable the auto-merge the maintainer enabled, which overrides their explicit choice. Repositories that want GitHub to enforce reviews can require them in branch protection.

(Written by Claude Opus 5.5)

@kixelated

Copy link
Copy Markdown
Owner Author

Merging at 9bcb663.

  • All 17 checks pass, and Codex reviewed this head.
  • Codex's one finding (hand-enabled auto-merge skips the review rule) is declined as an intentional, documented trade-off: feat: keep merge picks through auto-merge and automatic merge-queue kick-outs #201 (comment)
  • The pre-land quest check --base origin/main passed (47 documents ok).
  • Validation: quest status shows failed_checks, merge_conflict and manually_disabled correctly on real PRs, and local just check / just test passed.

(Written by Claude Opus 5.5)

@kixelated
kixelated merged commit cbd939a into main Oct 23, 2026
17 checks passed
@kixelated
kixelated deleted the docs/complete-auto-merge-pick branch October 23, 2026 20:34
kixelated added a commit to moq-dev/moq that referenced this pull request Oct 23, 2026
Picks up kixelated/quest#201: quest status reports landing-stopped, and
merge picks survive automatic merge-queue kick-outs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant