Skip to content

gh-merge-green: allow explicit Vercel status override - #18614

Merged
teamleaderleo merged 1 commit into
mainfrom
fix/merge-green-vercel-bypass
Oct 8, 2026
Merged

teamleaderleo merged 1 commit into
mainfrom
fix/merge-green-vercel-bypass

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

The merge helper currently blocks on a pending Vercel status even when the deployment is unrelated to the change. Add an explicit --override path that waives only the exact Vercel status when the reason names Vercel; every other pending status remains a blocker and the reason is posted to the PR.

Validation: python3 -m unittest tests.test_gh_merge_green (60 tests).


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Adds an explicit --override path to gh-merge-green that waives only the Vercel status when the override reason names Vercel, so a pending or red preview deployment no longer blocks an unrelated merge.

  • The override reason must match Vercel (case-insensitive); all other pending statuses remain merge blockers.
  • The reason is still posted to the PR, keeping the waiver auditable.
  • Adds tests covering the waiver and confirming non-Vercel statuses are not bypassed.

Written for commit 3485d2f. Summary will update on new commits.

View guided diff Turn on auto-fix


Note

Medium Risk
Narrows merge gating for repos without ci-status by allowing one external status to be skipped based on a text match in the override reason; other checks and override audit behavior are unchanged.

Overview
gh-merge-green now treats a pending or red Vercel commit status as waivable when you pass --override with a reason that mentions Vercel (8+ words, existing rules). A skip_vercel flag is set from that substring match; in the no aggregate ci-status workflow path, only the exact context name Vercel is skipped and a stderr note is printed—every other status context still blocks merge.

Tests extend WorkflowPresenceRegression.run_case with extra_args, stub gh pr comment, and add test_vercel_override_waives_only_the_named_external_status (pending Vercel merges with a Vercel-named override; pending review still refuses).

Reviewed by Cursor Bugbot for commit 3485d2f. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Bug Fixes
    • An explicit override that meets the existing eight-word minimum can now waive a pending Vercel status check. Other pending status checks, such as review checks, still block the merge.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 5508375a-1ea5-4c7e-8e0f-0c7a6516c4a9
📥 Commits

Reviewing files that changed from the base of the PR and between f0a2bad and 3485d2f.

📒 Files selected for processing (2)
  • scripts/gh-merge-green
  • tests/test_gh_merge_green.py

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

The merge script now permits an override reason that mentions Vercel to skip pending or failed checks for the exact Vercel context in the legacy status-check path. Tests confirm that the override does not skip a pending review status.

Changes

Vercel Status Override

Layer / File(s) Summary
Override behavior and regression coverage
scripts/gh-merge-green, tests/test_gh_merge_green.py
The script skips normal status checks for the exact Vercel context when the override reason mentions Vercel. The test helper forwards extra CLI arguments. Tests cover a pending Vercel status and confirm that a pending review status still blocks the merge.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: azooz2003-bit

Merge Risk: ⚪ Minimal · up to 3485d

The explicit override waives only the Vercel status, while other pending statuses remain blockers. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: allowing an explicit Vercel status override in gh-merge-green.
Description check ✅ Passed The description clearly explains the problem, resulting behavior, scope of the override, audit behavior, and test command. It omits the template headings for Changelog, Proof, and Checklist, but the c…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The pull request changes only scripts/gh-merge-green and its regression tests. The diff adds Vercel status override handling and test-fixture arguments; it does not change Cloud terminal creat…
Cmux Swift Actor Isolation ✅ Passed PASS: The reviewed diff changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. It introduces no Swift production code, so it cannot introduce or worsen Swift actor-isolation issues.
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. It introduces no production Swift changes and no semaphores, waits, sleeps, delayed dispatch, polling, main-q…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The diff adds shell status-override logic and Python test-fixture coverage. It does not change `Sources…
Cmux Expensive Synchronous Load ✅ Passed PASS: The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The diff contains no production Swift changes, so it cannot introduce an expensive synchronous Swift ag…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only the Bash script scripts/gh-merge-green and the Python test tests/test_gh_merge_green.py. It introduces no production Swift, TypeScript, or JavaScript change, an…
Cmux No Hacky Sleeps ✅ Passed The production change only skips the exact Vercel status when an explicit override names Vercel. The diff adds no sleep, timer, polling, fixed delay, or wall-clock wait. The test changes only add …
Cmux Algorithmic Complexity ✅ Passed The production diff adds a constant-time Vercel-name check and one conditional branch inside the existing single pass over combined verdicts at scripts/gh-merge-green:142-149 and :484-504. It adds…
Cmux Swift Concurrency ✅ Passed PASS: The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The diff contains no cmux-owned Swift files or Swift concurrency code, so it does not introduce or expa…
Cmux Swift @Concurrent ✅ Passed The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The reviewed diff contains no Swift files or Swift declarations, so the @concurrent check is not applicable…
Cmux Swift Package Boundaries ✅ Passed PASS: The reviewed diff changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. It introduces no production Swift code or Swift package-boundary change, so the custom check is not ap…
Cmux Swiftpm Lockfiles ✅ Passed The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The patch contains no Package.swift, Package.resolved, .gitignore, workflow, Xcode project, or dependen…
Cmux Swift Logging ✅ Passed The pull request changes only a shell CLI script and a Python test. It adds no Swift files or Swift logging statements, so the Swift logging failure conditions do not apply.
Cmux User-Facing Error Privacy ✅ Passed PASS: The only new user-visible text is an operator diagnostic on stderr from scripts/gh-merge-green: note: --override waived Vercel .... The helper is an internal CI/merge tool, and its documenta…
Cmux Full Internationalization ✅ Passed PASS: The production diff changes only the operational Bash helper scripts/gh-merge-green. Its added text is a status note for the command-line merge tool, and Vercel is a literal external status …
Cmux Swiftui State Layout ✅ Passed PASS. The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The diff contains no SwiftUI, Swift, AppKit, or state/layout changes, so the SwiftUI state-layout rules…
Cmux Architecture Rethink ✅ Passed PASS: The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. It introduces no Swift code or Swift architecture changes, and none of the listed Swift symptom pattern…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The authoritative diff contains no Swift files, standalone cmux-owned windows, or auxiliary-window shor…
Cmux Source Artifacts ✅ Passed The PR changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. The script change is hand-written product source, and the test change adds regression coverage and test harness support…
Cmux No Test Or Debug Seam In Production Source ✅ Passed The pull request changes only scripts/gh-merge-green and tests/test_gh_merge_green.py. It changes no Swift file under a production Sources/ path, so the specified production test/debug seam cond…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor cursor 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3485d2f. Configure here.

Comment thread scripts/gh-merge-green
if [ "$skip_vercel" -eq 1 ] && [ "$name" = Vercel ]; then
echo "note: --override waived Vercel $st/$co status" >&2
continue
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Waived Vercel counts as reported

Medium Severity

The Vercel skip continues after reported is incremented, so a waived pending Vercel status still satisfies the later “no checks have reported” guard. A head whose only GitHub verdict is that pending status can merge under --override, including in the window before Actions has created any check runs.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3485d2f. Configure here.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

merge-override: Vercel Agent Review is an optional external status and this exact head is fully validated

@teamleaderleo
teamleaderleo merged commit 29661b9 into main Oct 8, 2026
78 checks passed
@teamleaderleo
teamleaderleo deleted the fix/merge-green-vercel-bypass branch October 8, 2026 19:59
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for 3485d2f6ee: every check was green at merge (14 verified; 20 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 8, 2026
29661b9 gh-merge-green: allow explicit Vercel status override (manaflow-ai#18614)
dd6e295 fix: preserve SSH ProxyCommand child environment (manaflow-ai#18285)
f0a2bad Reject invalid Python regression-lane timeouts (manaflow-ai#18476)
3430354 Preserve PR media referenced through GitHub blob URLs (manaflow-ai#18562)
3b71b41 Reset a browser pane's selected frame and element refs when the page navigates (manaflow-ai#18577)
04e1d68 Clear force-close bypass when a confirmed close is rejected (manaflow-ai#18414)
8d86447 Treat Copilot value flags as value options when restoring (manaflow-ai#18470)
f6c678a Keep __proto__ keys in whole-area browser storage reads (manaflow-ai#18527)
7e97128 Keep minimized windows in the Dock when the global hotkey reveals cmux (manaflow-ai#18533)
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