Skip to content

refactor(ci): remove redundant platform rollup runner - #18555

Merged
teamleaderleo merged 5 commits into
mainfrom
fix/ci-lean-rollup-main
Oct 8, 2026
Merged

teamleaderleo merged 5 commits into
mainfrom
fix/ci-lean-rollup-main

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • fold the platform routing verdict into the existing required ci-status job
  • remove the standalone tests Linux rollup runner and its duplicate dependency hop
  • remove a duplicate Xcode selection step from the opt-in dogfood build

This avoids one Linux runner allocation per noncancelled CI run, modeled as up to five runner-minutes. It does not claim a measured wall-clock improvement. Published build and release gates are unchanged.

Validation

  • python3 tests/test_ci_change_areas.py
  • python3 tests/test_ci_cli_product_routing.py
  • actionlint .github/workflows/ci.yml
  • python3 scripts/verify-local.py --affected HEAD --repo /Users/leoli/Projects/cmux-worktrees/ci-lean-rollup-main
  • git diff --check

Changelog

Changed: remove a redundant CI routing runner and duplicate dogfood setup step.


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


Note

Medium Risk
Moves required platform routing logic into ci-status and tweaks cancellation handling; merge gating behavior should stay equivalent but any drift would affect every PR.

Overview
Removes the standalone tests Linux rollup job and runs the same Check platform workflow routing Python gate as the first step of the required ci-status job instead. Downstream jobs no longer list tests as a dependency; the script now reads PLATFORM_NEEDS and only treats cancellation on changes, linux-preflight, macos, and web as a blocked verdict.

Failure attribution drops the retired tests job from GATE_JOBS in classify_failures.py. Dogfood build loses a duplicate Select Xcode step before GhosttyKit download.

Tests and routing checks are retargeted from the tests job to ci-status / run_platform_gate.

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


Summary by cubic

Streamlines CI by removing the standalone tests rollup runner and folding its platform routing verdict into the existing required ci-status job. Also removes a duplicate Xcode selection step from the opt-in dogfood build and drops the retired job from failure attribution. This avoids one Linux runner allocation per noncancelled CI run while leaving published build and release gates unchanged.

Written for commit 9f17af7. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • Chores

    • Updated CI status checks to validate platform results, Linux preflight, and required macOS and web workflows.
    • Removed a redundant Xcode-selection step from the dogfood build.
    • Updated failure reporting to include failures from the test job and adjusted CI timing checks.
  • Tests

    • Updated CI routing checks for platform results, including failure and skip handling for macOS and web workflows, and Linux preflight behavior.

@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: 61203ca7-03a3-43f3-8842-4d4c2cf12c3d
📥 Commits

Reviewing files that changed from the base of the PR and between a97506a and 9f17af7.

📒 Files selected for processing (1)
  • tests/test_ci_linux_guard_routing.py

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


📝 Walkthrough

Walkthrough

The workflow moves platform-routing validation from the removed tests job into ci-status. CI routing tests check the updated status gate. Failure classification now includes failures from a job named tests. The dogfood build no longer repeats Xcode selection.

Changes

Platform status gate

Layer / File(s) Summary
Move platform routing into ci-status
.github/workflows/ci.yml
The workflow removes the tests aggregate job and moves its platform-routing verdict into ci-status. The status job checks cancellation, routing, Linux preflight, and required macOS and web results. ci-timing no longer depends on tests.
Update routing tests and failure classification
tests/test_ci_change_areas.py, tests/test_ci_cli_product_routing.py, tests/test_ci_linux_guard_routing.py, scripts/ci/classify_failures.py
The tests use ci-status to check platform-gate outcomes, dependencies, Linux preflight behavior, and unit-suite routing. Failure classification no longer excludes a job named tests.

Dogfood build workflow

Layer / File(s) Summary
Remove repeated Xcode selection
.github/workflows/ci.yml
The dogfood build proceeds from downloading the pinned GhosttyKit to building and packaging the app without repeating Xcode selection.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Refactor

Sequence Diagram(s)

sequenceDiagram
  participant changes
  participant linux-preflight
  participant macos
  participant web
  participant ci-status
  changes->>ci-status: route outputs and job result
  linux-preflight->>ci-status: job result
  macos->>ci-status: job result
  web->>ci-status: job result
  ci-status->>ci-status: validate routing and required job results
Loading

Merge Risk: ⚪ Minimal · up to 9f17a

The reviewed workflow’s CI gate and dogfood toolchain sequence appear intact, with routing tests covering the gate. Confirm the live GitHub required-check rule if this change alters a required status name.

🚥 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 14 functions across 4 files. 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: removing the redundant CI platform rollup runner.
Description check ✅ Passed The description explains the problem, resulting CI behavior, validation commands, and changelog entry. It is mostly complete, although it uses a Validation heading instead of Testing and omits the Pro…
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 diff changes only CI workflow routing, CI failure attribution, and CI tests. It does not change Cloud terminal creation, persistent cmux-tui transport, manual renderers, Ghostty runtime admission,…
Cmux Swift Actor Isolation ✅ Passed PASS: The pull request changes only CI workflow, Python scripts, and Python tests. The authoritative diff contains no Swift files or production Swift code, so the Swift actor-isolation failure conditi…
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only one workflow file and four Python test/script files. The authoritative diff contains no Swift files or production Swift changes, and the added lines contain no Swift bloc…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only CI workflow and CI test/failure-classification files. It does not modify browser socket commands, WebKit/AppKit routing, or browser automation policy tests, so it i…
Cmux Expensive Synchronous Load ✅ Passed The pull request changes only CI workflow and Python test/classification files. It adds or moves no production Swift code or synchronous agent-history load.
Cmux Cache Substitution Correctness ✅ Passed The pull request changes only CI workflow YAML and Python CI scripts/tests. The authoritative diff contains no production Swift, TypeScript, or JavaScript changes, and no cache substitution in a persi…
Cmux No Hacky Sleeps ✅ Passed PASS: The diff introduces no hacky sleep, timer, polling, backoff, or wall-clock synchronization. The only changed non-test Python runtime line removes tests from GATE_JOBS. Other Python changes a…
Cmux Algorithmic Complexity ✅ Passed PASS. The diff introduces no nested scan over a scalable user-data collection. The only new collection scan is sorted(...) over the explicit four-element platform_names tuple in `.github/workflows…
Cmux Swift Concurrency ✅ Passed The pull request changes only CI YAML and Python test/helper files. It changes no Swift files or Swift source, so it does not introduce or expand any legacy Swift concurrency pattern covered by this c…
Cmux Swift @Concurrent ✅ Passed PASS: The pull request changes only CI workflow and Python files. No .swift file is present in the authoritative diff, so the Swift @concurrent criteria are not applicable.
Cmux Swift Package Boundaries ✅ Passed PASS: The pull request changes only CI workflow and Python test/classification files. It contains no production Swift changes, so it does not violate the Swift package boundary rule.
Cmux Swiftpm Lockfiles ✅ Passed The pull request changes only CI workflow logic, failure classification, and CI tests. It does not change Package.swift, any Package.resolved, .gitignore, or Xcode project/workspace files. The w…
Cmux Swift Logging ✅ Passed The pull request changes only CI workflow and Python test/classification files. It adds or materially changes no Swift logging or other production Swift code, so the Swift logging failure conditions d…
Cmux User-Facing Error Privacy ✅ Passed The diff changes only GitHub Actions CI wiring, CI failure classification, and tests. The added messages are internal CI diagnostics in the ci-status job, and the classifier change only adjusts inte…
Cmux Full Internationalization ✅ Passed PASS: The PR changes only CI workflow wiring, a CI failure-classification set, and CI tests. It adds no Swift UI text, string-catalog or Info.plist entries, web UI/API/metadata/messages, or locale dat…
Cmux Swiftui State Layout ✅ Passed The pull request changes only one YAML file and four Python files. It changes no Swift or SwiftUI source, and added lines contain no SwiftUI state, GeometryReader, lazy-row, or render-time mutation pa…
Cmux Architecture Rethink ✅ Passed PASS — The pull request changes only CI YAML and Python test/classification files. The diff contains no Swift source or SwiftUI/AppKit architecture changes. The swift_packages references are CI rout…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The pull request changes only CI workflow and Python test/classification files. The authoritative diff contains no Swift files and no standalone cmux-owned window code changes. The Swift auxiliary-win…
Cmux Source Artifacts ✅ Passed The pull request changes only hand-written CI configuration, a failure-classification script, and CI routing tests. The diff removes the obsolete tests job and a duplicate Xcode step; it adds no log…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The pull request changes no Swift files. Its five changed files are CI workflow, Python scripts, and Python tests, so it cannot introduce a test or debug seam in a production Swift Sources/ fi…
  • 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.

@blacksmith-sh

This comment has been minimized.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on 9f17af758d (https://github.com/manaflow-ai/cmux/actions/runs/37773166273). This covers only the fast guards, not CI: CI's result is the ci-status check, and the CI failure attribution comment names any failing test.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Passes: CI passes on 9f17af758d.

CI passes on 9f17af758d (run 37773166794 attempt 1).

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@teamleaderleo
teamleaderleo merged commit a19a7b0 into main Oct 8, 2026
71 checks passed
@teamleaderleo
teamleaderleo deleted the fix/ci-lean-rollup-main branch October 8, 2026 13:25
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for 9f17af758d: every check was green at merge (12 verified; 15 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
fcab477 fix(ci): retry same-source nightly incident closure (manaflow-ai#18568)
19acbfe fix(ci): resume timed-out nightly notarization (manaflow-ai#18553)
a8efafb refactor(ci): reuse changes runner for full-suite marker (manaflow-ai#18564)
a19a7b0 refactor(ci): remove redundant platform rollup runner (manaflow-ai#18555)
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