Skip to content

fix(ci): the ejection intake issue is reason-aware - #1452

Merged
Brad (bmethod) merged 3 commits into
mainfrom
intake-reason-aware
Aug 18, 2026
Merged

fix(ci): the ejection intake issue is reason-aware#1452
Brad (bmethod) merged 3 commits into
mainfrom
intake-reason-aware

Conversation

@bmethod

Copy link
Copy Markdown
Collaborator

The merge-queue ejection alert filed an intake issue for EVERY non-MERGE dequeue. Today that produced 23 issues, ~85% noise: 13 MANUAL (the deliberate dequeue-push-rearm flow), 6 MERGE_CONFLICT (routine re-evaluation as siblings merged) — each mirrored into Linear by the creation sync. The PR comment (the dropped-arm warning) still posts for every non-MERGE reason; the intake issue now files only for failure-shaped reasons — CI_FAILURE plus anything unrecognized, fail-closed toward filing.

https://claude.ai/code/session_012epxJEzGqT7q3qcFhdZUt5

Copilot AI balanced review requested due to automatic review settings August 17, 2026 21:10
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@macroscopeapp

macroscopeapp Bot commented Aug 17, 2026

Copy link
Copy Markdown

Approvability

Verdict: Approved c92833f

This is a minor CI/CD workflow change that filters which merge queue ejection events create triage issues. The logic is straightforward (case statement checking dequeue reason), doesn't affect production application behavior, and reduces internal issue noise without changing the PR comment flow.

You can customize Macroscope's approvability policy. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 17, 2026

Copilot AI 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.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds operational notes and updates the merge-queue ejection workflow to reduce noise by only filing tracker issues for failure-like dequeue reasons.

Changes:

  • Added an append-only cross-repo log for bridge/pi integration findings and gotchas.
  • Documented the new reason-aware behavior in CHANGELOG.md.
  • Updated merge-queue-ejection-alert workflow to skip intake issue creation for MANUAL and MERGE_CONFLICT dequeue reasons.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
docs/cross-repo-notes.md Introduces an append-only cross-repo log capturing integration facts and operational learnings.
CHANGELOG.md Notes the reduced intake-issue noise from reason-aware ejection handling.
.github/workflows/merge-queue-ejection-alert.yml Implements reason-based gating to avoid filing issues for non-triage ejections.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/merge-queue-ejection-alert.yml
Comment thread docs/cross-repo-notes.md Outdated
Copilot AI review requested due to automatic review settings August 17, 2026 21:32
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 17, 2026 21:32

Dismissing prior approval to re-evaluate 644b385

Copilot AI review requested due to automatic review settings August 17, 2026 21:33

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

.github/workflows/merge-queue-ejection-alert.yml:188

  • Using exit 0 here terminates the entire step early, which is brittle if later logic is added after the intake-issue section (or if there are unrelated side effects later in this same script). Prefer structuring this as a conditional that only skips the intake-issue creation portion (e.g., set a flag / wrap the issue-creation block), so the rest of the step can continue safely without relying on early termination.
          # Intake issue (deduped per PR + ejection run), failure-shaped
          # reasons only: a deliberate dequeue or a routine queue
          # re-evaluation is not triage work.
          case "${DEQUEUE_REASON}" in
            MANUAL|MERGE_CONFLICT)
              echo "reason ${DEQUEUE_REASON}: deliberate dequeue / queue re-evaluation — comment posted, no intake issue"
              exit 0
              ;;
          esac

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.github/workflows/merge-queue-ejection-alert.yml:189

  • The case has no explicit default branch, so unrecognized reasons silently fall through to intake issue creation. Since the behavior is intentionally ‘fail-closed’, consider adding an explicit *) branch that logs that the reason is unrecognized and that an intake issue will be created. This makes future debugging/auditing much easier when GitHub introduces new dequeue reasons.
          create_intake_issue=1
          case "${DEQUEUE_REASON}" in
            MANUAL|MERGE_CONFLICT)
              echo "reason ${DEQUEUE_REASON}: deliberate dequeue / queue re-evaluation — comment posted, no intake issue"
              create_intake_issue=0
              ;;
          esac

.github/workflows/merge-queue-ejection-alert.yml:187

  • Using echo for log lines can be shell-dependent (e.g., -e interpretation and escape handling). Prefer printf '%s\n' ... for predictable output, especially since this message contains Unicode punctuation.
              echo "reason ${DEQUEUE_REASON}: deliberate dequeue / queue re-evaluation — comment posted, no intake issue"

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 17, 2026
Copilot AI review requested due to automatic review settings August 17, 2026 23:47
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 17, 2026 23:47

Dismissing prior approval to re-evaluate ab3276a

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

.github/workflows/merge-queue-ejection-alert.yml:195

  • marker computation and the gh issue list call run even when create_intake_issue=0 (MANUAL/MERGE_CONFLICT). Since those reasons intentionally skip triage, consider moving the marker=... and existing="$(gh issue list ...)" lines inside the create_intake_issue=1 branch (or wrapping them in a separate if [ "$create_intake_issue" = "1" ]; then ... fi) to avoid unnecessary GitHub API calls and reduce rate-limit pressure.
          create_intake_issue=1
          case "${DEQUEUE_REASON}" in
            MANUAL|MERGE_CONFLICT)
              echo "reason ${DEQUEUE_REASON}: deliberate dequeue / queue re-evaluation — comment posted, no intake issue"
              create_intake_issue=0
              ;;
          esac
          # An unidentified ejecting run must not collapse successive
          # ejections into one marker: fall back to this alert run's own id.
          marker="ejection-alert:pr-${PR_NUMBER}:run-${run_id:-alert-${GITHUB_RUN_ID}}"
          existing="$(gh issue list --search "\"$marker\" in:body" --state open --json number --jq 'length')"
          if [ "$create_intake_issue" = "1" ] && [ "$existing" = "0" ]; then

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 17, 2026
@bmethod
Brad (bmethod) added this pull request to the merge queue Aug 17, 2026

@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: ab3276a804

ℹ️ 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 (@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 (@codex) address that feedback".

Comment thread .github/workflows/merge-queue-ejection-alert.yml Outdated
@bmethod
Brad (bmethod) removed this pull request from the merge queue due to a manual request Aug 17, 2026
@github-actions

Copy link
Copy Markdown

Merge queue ejected this PR (removed_from_merge_queue, reason: MANUAL). The auto-merge arm is now DROPPED — nothing will merge this PR until someone re-arms it.

Ejecting merge-group run: https://github.com/vanillagreencom/vstack/actions/runs/32082005370 (Skill Tests)

Failing job(s):
(run 32082005370 has no failure-shaped jobs recorded — it may be the attempt's still-running or non-ejecting sibling; inspect the run link above)

No usable same-named comparison on the PR head (checks absent, skipped, or still running) — no flake-vs-genuine call is available; inspect the failing run before re-arming.

Automated by merge-queue-ejection-alert (VST-196). This alert never re-arms auto-merge.

A deliberately non-intake run (MANUAL, MERGE_CONFLICT) no longer dies
under set -e when the Issues API hiccups on a lookup whose result it
would never use.

Claude-Session: https://claude.ai/code/session_01EwxSRv8oy1NxoQm66WKa4J
Copilot AI review requested due to automatic review settings August 18, 2026 00:46
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 18, 2026 00:46

Dismissing prior approval to re-evaluate c92833f

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

.github/workflows/merge-queue-ejection-alert.yml:203

  • With set -e, if gh issue list ... fails for a failure-shaped ejection (when create_intake_issue=1), the whole job will exit and you may lose the intake issue entirely. Consider making the dedupe lookup failure-tolerant (e.g., treat lookup failure as existing=0 / proceed to create, or log and continue) so alerting is resilient to transient GitHub/CLI/API errors.
          create_intake_issue=1
          case "${DEQUEUE_REASON}" in
            MANUAL|MERGE_CONFLICT)
              echo "reason ${DEQUEUE_REASON}: deliberate dequeue / queue re-evaluation — comment posted, no intake issue"
              create_intake_issue=0
              ;;
          esac
          # An unidentified ejecting run must not collapse successive
          # ejections into one marker: fall back to this alert run's own id.
          marker="ejection-alert:pr-${PR_NUMBER}:run-${run_id:-alert-${GITHUB_RUN_ID}}"
          # The dedupe lookup runs only when an issue could be created: a
          # transient Issues API failure must not kill a deliberately
          # non-intake run under set -e.
          if [ "$create_intake_issue" = "1" ]; then
            existing="$(gh issue list --search "\"$marker\" in:body" --state open --json number --jq 'length')"
            if [ "$existing" != "0" ]; then
              echo "intake issue for $marker already open; skipping create"
              create_intake_issue=0
            fi
          fi

Copilot AI review requested due to automatic review settings August 18, 2026 00:46

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@bmethod
Brad (bmethod) added this pull request to the merge queue Aug 18, 2026
Merged via the queue into main with commit 7dda527 Aug 18, 2026
26 checks passed
@bmethod
Brad (bmethod) deleted the intake-reason-aware branch August 18, 2026 01:01
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.

2 participants