Skip to content

ci: allow runner selection in the focused test helper - #13867

Merged
teamleaderleo merged 2 commits into
manaflow-ai:mainfrom
teamleaderleo:ci/focused-test-explicit-runner
Sep 23, 2026
Merged

teamleaderleo merged 2 commits into
manaflow-ai:mainfrom
teamleaderleo:ci/focused-test-explicit-runner

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

The focused-test helper cannot select a runner, so a macOS 26 verification requires a separate manual workflow dispatch. Its repeat guard also treats a prior macOS 15 failure as a reason to reject that macOS 26 run.

Add --runner with the same choices as test-e2e.yml and pass an explicit choice into the workflow. For an explicit non-auto runner, prior failure and success history is matched against that runner as well as the existing selector and exact commit. Omitted/auto behavior stays unchanged.

For example: scripts/run-e2e.sh cmuxTests/ExampleTests --ref topic/fix --runner blacksmith-6vcpu-macos-26.

Validation: 31 launcher tests pass against a fake GitHub CLI, including every workflow runner choice, default preservation, invalid-input rejection before GitHub access, cross-runner failure isolation, and same-runner repeat protection even when another runner succeeded. The tests fail before the implementation commit; git diff --check passes. No native workflow was dispatched during verification.


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

Allows the focused test helper to select a runner, so a macOS 26 verification no longer needs a separate manual workflow dispatch.

  • Adds --runner with the same choices as test-e2e.yml; omitting it keeps the workflow default.
  • Repeat protection matches prior runs against the explicit runner, so a macOS 15 failure won't block an explicitly requested macOS 26 run while same-runner repeat protection still applies.

Written for commit fcc450b. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Focused test runs can now target a specific supported runner. When no runner is selected, dispatch behavior remains unchanged.
  • Bug Fixes
    • A previous failure on one explicitly selected runner no longer prevents dispatching the same test and commit on a different runner. Failures on the selected runner still apply, and automatic runner selection continues to honor existing repeat guards.

Final validation: all 31 focused CLI tests pass, independent review found no actionable issues, and CodeRabbit completed a clean review of fcc450bd18d38811a55ac36afd6bd92f9b1b4dd9. Required checks are being reevaluated after the stable CLA/Web check-name fixes landed on main. No native simulator test dispatch was performed for this helper-only change.

@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

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: f1387f30-31b8-4a16-b8fb-da8d8752db31

📥 Commits

Reviewing files that changed from the base of the PR and between 34ebc29 and fcc450b.

📒 Files selected for processing (2)
  • scripts/ci/dispatch-focused-test.py
  • tests/test_run_e2e.py

Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The focused-test dispatcher accepts an optional runner and includes it in dispatch requests. For explicit non-auto runners, prior-attempt matching considers runs recorded for that runner; the default and auto behavior retains the broad guard.

Changes

Focused test runner selection

Layer / File(s) Summary
Runner selection and dispatch
scripts/ci/dispatch-focused-test.py, tests/test_run_e2e.py
The CLI accepts runner values from RUNNERS and includes a supplied value in the dispatch request. Tests check the workflow options, default behavior, and rejection of an invalid runner.
Runner-aware prior-attempt guard
scripts/ci/dispatch-focused-test.py, tests/test_run_e2e.py
For an explicit non-auto runner, prior-attempt matching checks whether the run title records that runner. Tests cover failures on different or matching runners and the auto guard behavior.

Priority: ⬇️ Low

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

Change: Feature

Merge Risk: ⚪ Minimal · up to fcc45

Runner selection and repeat protection appear ready to merge after normal checks; no actionable issue is established in the supplied evidence.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 18 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
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 The check is not applicable to this diff. The changed files are the focused-test CI dispatcher and its tests. The implementation adds a workflow runner option and scopes prior CI runs; it does not cha…
Cmux Swift Actor Isolation ✅ Passed The pull request changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. The authoritative diff contains no Swift files or Swift code changes. The Swift actor-isolation check i…
Cmux Swift Blocking Runtime ✅ Passed The PR changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It introduces no production Swift changes or blocking/timing synchronization primitives. The Swift blocking-runti…
Cmux Browser Automation Off-Main ✅ Passed The PR changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It does not change browser socket routing, WebKit/AppKit access, or worker-lane browser automation, so it introdu…
Cmux Expensive Synchronous Load ✅ Passed The check applies to production Swift changes. The reviewed diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; it contains no Swift files or Swift code changes. There…
Cmux Cache Substitution Correctness ✅ Passed The check applies only to production Swift, TypeScript, and JavaScript changes in persistence, history, undo, or snapshot paths. The authoritative PR diff changes only `scripts/ci/dispatch-focused-tes…
Cmux No Hacky Sleeps ✅ Passed The PR adds runner selection and runner-aware prior-run matching in scripts/ci/dispatch-focused-test.py; it adds no fixed sleep, timer, polling loop, or wall-clock wait. Existing run-discovery waits…
Cmux Algorithmic Complexity ✅ Passed The change adds a fixed seven-value runner tuple and a runner-prefix check in the existing prior-run scan. That scan fetches at most 100 runs, and the selector membership scan already existed. The PR …
Cmux Swift Concurrency ✅ Passed The check does not apply to this diff. The review-scoped change list contains only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; the patch changes Python code and tests, with no S…
Cmux Swift @Concurrent ✅ Passed The reviewed diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It contains no Swift changes, so the Swift @concurrent check does not apply.
Cmux Swift Package Boundaries ✅ Passed The check does not apply to this pull request. The review-scoped diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; it contains no Swift production changes that could…
Cmux Swiftpm Lockfiles ✅ Passed The check is not triggered. The pull request changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; it changes no SwiftPM package, Xcode project, .gitignore, workflow, or de…
Cmux Swift Logging ✅ Passed PASS. This check applies to production Swift changes. The PR changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; the authoritative diff contains no Swift files or changed S…
Cmux User-Facing Error Privacy ✅ Passed The diff changes only scripts/ci/dispatch-focused-test.py and its tests. The changed command is a focused-test dispatch helper, invoked through scripts/run-e2e.sh or contributor verification docum…
Cmux Full Internationalization ✅ Passed The diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It adds runner selection to a CI helper and tests for that helper. It changes no production Swift UI, app strin…
Cmux Swiftui State Layout ✅ Passed The SwiftUI state-layout check is not applicable. The authoritative diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; it contains no Swift or SwiftUI changes.
Cmux Architecture Rethink ✅ Passed The diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It adds Python runner-selection and repeat-guard behavior plus tests. It introduces no Swift architecture chang…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The check does not apply to this pull request. The reviewed diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py; it contains no Swift files or window-related code. No s…
Cmux Source Artifacts ✅ Passed The diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. The changes are hand-written launcher code and tests, which the source-control artifact rule permits. No genera…
Cmux No Test Or Debug Seam In Production Source ✅ Passed The reviewed diff changes only scripts/ci/dispatch-focused-test.py and tests/test_run_e2e.py. It changes no production Swift file under Sources/, so the custom check does not apply.
Title check ✅ Passed The title clearly and concisely describes the main change: adding runner selection to the focused test helper.
Description check ✅ Passed The description explains the problem, the change, and the test results. It omits the template’s Review Trigger and Checklist sections, and does not include a demo video; the core summary and validatio…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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.

@github-actions

Copy link
Copy Markdown
Contributor

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 23, 2026 03:02
@teamleaderleo
teamleaderleo merged commit 4f68bd1 into manaflow-ai:main Sep 23, 2026
51 of 54 checks passed
@teamleaderleo
teamleaderleo deleted the ci/focused-test-explicit-runner branch September 23, 2026 11:22
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