Skip to content

Route macOS test-product CI helpers to owned lanes - #13465

Merged
teamleaderleo merged 5 commits into
mainfrom
codex/route-macos-product-ci
Sep 21, 2026
Merged

teamleaderleo merged 5 commits into
mainfrom
codex/route-macos-product-ci

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Stop known app-host compiled-product CI helpers from fanning out into unrelated web, Release, history, CLI, and source-lint work.

Exact owned helpers:

  • app_host_test_products.py
  • compile-app-host-test-product.sh
  • product_input_identity.py
  • restore-app-host-test-product.sh
  • reuse_app_host_products.py
  • sanitize-xcode-source-packages-cache.py

For those files, the area router now selects macOS admission/consumption while leaving web and Release-build false. The Linux guard router maps them to workflow-guard-tests rather than every guard lane.

The shell fail-open precheck in ci.yml explicitly admits these names to the Python classifier; unknown/new direct scripts/ci/*.py files still fail open to every area and every guard before candidate-controlled routing code is trusted.

This is intentionally separate from the product/admission identity stack (#13462–#13464). That stack removes unnecessary Xcode compilation; this PR removes unrelated CI fanout around the same helper family.

Observed motivation: #13462's real validation run still launched broad web work solely because a new scripts/ci/product_input_identity.py was conservatively treated as an unknown all-area router input.

Related: #13095, #13325, #13436, #13462.


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

Routes the known macOS test-product CI helpers to their owned lanes so they no longer trigger unrelated web, Release, history, CLI, or source-lint work.

  • macOS admission/consumption now runs for the six owned helpers, with web and Release-build jobs left false.
  • The Linux guard router maps these helpers to workflow-guard-tests only.
  • Unknown direct scripts/ci/*.py files still fail open to every area and every guard.

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

Review in cubic

Summary by CodeRabbit

  • Bug Fixes

    • Improved continuous integration change detection for macOS test-product helper updates.
    • Changes to recognized macOS testing tools now run the relevant macOS and workflow guard checks instead of unnecessarily triggering every CI area.
    • Unknown CI helper changes continue to trigger all applicable validation areas, preserving broad coverage for unrecognized changes.
  • Tests

    • Added coverage confirming the updated routing behavior for recognized and unknown CI helpers.

@github-actions

Copy link
Copy Markdown
Contributor

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

@coderabbitai

coderabbitai Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Understand this PR’s impact

Explore downstream dependencies and potential security impact with Blast Radius.

View 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: 9f687bfa-ab3d-4d48-a76b-79d2428fb529

📥 Commits

Reviewing files that changed from the base of the PR and between 04f6834 and 9d8ea6d.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • scripts/ci/detect_ci_change_areas.py
  • scripts/ci/detect_linux_guard_changes.py
  • tests/test_ci_change_areas.py
  • tests/test_ci_linux_guard_routing.py

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


📝 Walkthrough

Walkthrough

The CI routing updates classify six macOS test-product helpers as macOS-only, map them to the workflow-test guard route, and preserve all-area fallback for unknown CI helpers. The workflow also marks these helpers as CI-router changes.

Changes

CI routing

Layer / File(s) Summary
MacOS test-product classification
scripts/ci/detect_ci_change_areas.py
The detector identifies six macOS test-product helpers and selects macOS without web, agent-session-web, or release-build areas. Other direct CI helpers retain the all-area rule.
CI router and guard routing
.github/workflows/ci.yml, scripts/ci/detect_linux_guard_changes.py
The workflow marks the six helpers as CI-router changes. Linux guard routing maps them to linux_guard_tests.
Routing regression coverage
tests/test_ci_change_areas.py, tests/test_ci_linux_guard_routing.py
Tests verify macOS-only classification, workflow-test guard selection, and all-area fallback for unknown CI helpers.

Priority: ⬇️ Low

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

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant ChangedFiles
  participant CIWorkflow
  participant ChangeAreaDetector
  participant LinuxGuardDetector
  participant CIAreas
  participant GuardLanes
  ChangedFiles->>CIWorkflow: provide changed helper path
  CIWorkflow->>ChangeAreaDetector: route change-area detection
  ChangeAreaDetector->>CIAreas: classify macOS test-product helper
  CIAreas-->>ChangeAreaDetector: macOS only
  CIWorkflow->>LinuxGuardDetector: route guard detection
  LinuxGuardDetector->>GuardLanes: select workflow-test guard
  GuardLanes-->>LinuxGuardDetector: linux_guard_tests
Loading
🚥 Pre-merge checks | ✅ 23 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description clearly explains what changed and why, but it omits the required Testing, Review Trigger, and Checklist sections. It also does not provide the requested Demo Video section or explain w… Add the required Testing section with test and verification details, include the Review Trigger block, complete the Checklist, and add a Demo Video section or explain why it is not applicable.
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 12 functions across 4 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (23 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: routing macOS test-product CI helpers to their owned lanes.
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 authoritative diff contains only CI routing classifications, the workflow fail-open path list, and tests. It adds no Cloud terminal creation, cmux-tui client or carrier spawning, manual rend…
Cmux Swift Actor Isolation ✅ Passed PASS: The authoritative diff changes only .github/workflows/ci.yml, CI Python routing scripts, and CI tests. It changes no Swift files and introduces no Swift actor-isolation code. The custom failur…
Cmux Swift Blocking Runtime ✅ Passed The PR changes only CI YAML, Python routing code, and Python tests. It introduces no production Swift changes and no Swift blocking or timing primitives. The custom check is therefore not applicable.
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only CI workflow routing, Python classifiers, and their tests. The authoritative diff contains no browser socket commands, WebKit/AppKit access, processV2Command routi…
Cmux Expensive Synchronous Load ✅ Passed PASS. The authoritative pull-request diff changes only CI YAML, Python routing code, shell-path classifications, and Python tests. It contains no Swift files and no changes to agent-history loads, sto…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only CI YAML, Python routing code, and Python tests. It introduces no production Swift, TypeScript, or JavaScript change, so the cache-substitution condition does not ap…
Cmux No Hacky Sleeps ✅ Passed PASS. The pull request adds only CI path-routing sets, classifier branches, and deterministic routing tests. The changed production Python files contain no added or existing sleep, timer, polling, f…
Cmux Algorithmic Complexity ✅ Passed The changed production code adds fixed six-item frozenset lookups, fixed shell case patterns, and route membership checks. It does not add nested scans, repeated sorting/filtering, per-target rescan…
Cmux Swift Concurrency ✅ Passed The reviewed diff changes only CI YAML, Python, shell-related routing tests, and Python test files. It contains no Swift files or Swift concurrency code, so it does not introduce or expand any legacy …
Cmux Swift @Concurrent ✅ Passed PASS. The review-range diff changes only .github/workflows/ci.yml, Python CI routers, and Python test files. It contains no Swift, Objective-C, or header changes, and no changed Swift async function…
Cmux Swift Package Boundaries ✅ Passed PASS: The pull request changes only CI workflow, Python routing logic, and Python tests. The authoritative diff contains no Swift, Package.swift, Xcode project, or SwiftPM package changes. The Swift p…
Cmux Swiftpm Lockfiles ✅ Passed The PR changes only CI workflow, Python routing code, and tests. It does not change any Package.swift, Package.resolved, .gitignore, or Xcode project/package-reference file. Therefore none of th…
Cmux Swift Logging ✅ Passed PASS. The pull request changes only CI YAML, Python routing code, and tests. The authoritative diff contains no Swift files or Swift logging statements. The only stdout reference is a test assertion, …
Cmux User-Facing Error Privacy ✅ Passed PASS. The pull request changes only GitHub Actions routing, CI detector tables, and tests. The changed behavior emits CI step outputs and routes internal macOS/Linux guard lanes; it does not add or mo…
Cmux Full Internationalization ✅ Passed PASS: The PR changes CI routing scripts, workflow guards, and tests only. The added text is path identifiers, code comments, assertions, and an operational CI message. It does not add or materially ch…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only CI workflow, Python routing logic, and Python tests. The authoritative diff contains no Swift files and no SwiftUI state, GeometryReader, lazy/list row, or render-t…
Cmux Architecture Rethink ✅ Passed PASS: The reviewed diff changes only one workflow YAML file, two Python CI routers, and two Python test files. It contains no Swift, Objective-C, or AppKit/SwiftUI lifecycle changes, and no introduced…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The pull request changes only CI workflow, Python routing code, and Python tests. The authoritative diff contains no Swift files and no standalone cmux window changes. The auxiliary-window close…
Cmux Source Artifacts ✅ Passed PASS. The authoritative diff changes only .github/workflows/ci.yml, two CI source scripts, and two test source files. The changes add routing configuration and test coverage. No logs, caches, build …
Cmux No Test Or Debug Seam In Production Source ✅ Passed The pull request changes only .github/workflows/ci.yml, Python CI routing files, and Python test files. It contains no Swift changes under a production Sources/ path, so it cannot introduce a test…
Full details: Description check

Explanation

The description clearly explains what changed and why, but it omits the required Testing, Review Trigger, and Checklist sections. It also does not provide the requested Demo Video section or explain why a video is not applicable.

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 12 functions across 4 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

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.

@teamleaderleo
teamleaderleo merged commit eec58f3 into main Sep 21, 2026
56 of 61 checks passed
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