Skip to content

ci: start Linux-only jobs beside Fast static checks - #14181

Merged
teamleaderleo merged 4 commits into
mainfrom
claude/guards-skip-preflight-wait
Sep 24, 2026
Merged

teamleaderleo merged 4 commits into
mainfrom
claude/guards-skip-preflight-wait

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Every pull request waits for Fast static checks (about 0.4 min) before guards, the GhosttyKit release check, browser and web can start, so the whole static job sits on the critical path. On Linux-only PRs the median run is 2.4 min, so this wait is a real share of it. With this change those four jobs start as soon as changes finishes, alongside the static job.

#13177 added the wait on purpose, as a "don't spend runners if lint fails" gate. None of the four reads a static-preflight output, so the wait only controls ordering. All four run only on Linux, where a few extra minutes on a red lint cost less than 0.4 min on every green run.

Mac work still waits for it. claude-wrapper, remote-daemon, cli, macos-admission-gate and macos keep needs: static-preflight, and the gate and macos still require it to succeed, so a lint failure still starts no Mac runner. linux-preflight and ci-status still fail the run when the static job is red.

Testing

  • b679799 (test only) adds test_only_mac_work_waits_for_static_preflight. It fails on that commit at guards, and passes with the fix in b403c1a. The test pins that the four Linux jobs need only changes, that every job with a Mac runner still needs static-preflight (derived from runs-on), and that the admission gate and both verdict jobs keep it.
  • python3 tests/test_ci_change_areas.py passes. That includes the derived admission-gate membership test, which still picks up all four jobs. tests/test_ci_guard_workflow_structure.py and tests/test_ci_linux_guard_routing.py (30 tests) pass, and actionlint .github/workflows/ci.yml is clean.
  • I ran every guard run: block locally. The steps that still fail don't read ci.yml, and they're environmental: missing submodules, RUNNER_TEMP, two 20-minute app-host shell timeouts, and test_ci_virtual_display_lock.sh, which fails the same way on origin/main.
  • The critical-path saving is estimated from the 2026-09-24 job timings. I haven't measured it on a run with this change yet.

🤖 Generated with Claude Code


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

Starts the four Linux-only CI jobs (guards, ghosttykit-release-check, browser, web) as soon as changes finishes instead of queueing them behind static-preflight, removing the static job from every pull request's critical path. On Linux-only PRs the median run is 2.4 min, so the ~0.4 min wait was a real share. The wait only ordered jobs; none of the four reads a static-preflight output. Mac work is unaffected: claude-wrapper, remote-daemon, cli, macos-admission-gate, and macos still require a green static job before any Mac runner starts, and linux-preflight and ci-status still fail the run when the static job is red. Updates docs/contributor-verification.md to describe this.

Testing

  • Adds test_only_mac_work_waits_for_static_preflight, which fails on the commits where the four jobs still wait.
  • Updates the guard and web workflow tests to reflect the new needs: [changes] dependency.

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

Review in cubic

Summary by CodeRabbit

  • Chores
    • Linux checks can now run alongside static preflight checks, shortening the wait for CI results.
    • macOS and selected other checks remain gated on static preflight results.
  • Documentation
    • Updated contributor guidance to reflect the revised check progression.

teamleaderleo and others added 2 commits September 24, 2026 00:34
guards, the GhosttyKit release check, browser and web run only on Linux
but wait for Fast static checks before starting, adding that job to
every pull request's critical path. Pin that they need only `changes`,
that every Mac-runner job still waits for the static stage, and that
the admission gate and both verdict jobs still require it.

Fails on this commit: guards still needs static-preflight.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#13177 made guards, the GhosttyKit release check, browser and web wait
for Fast static checks so a lint failure would not spend runners on
them. None of them reads an output from it; the wait only orders, and
it puts the whole static job on every pull request's critical path to
save a few Linux minutes on a red lint.

Those four jobs now need only `changes`. Everything that starts a Mac
(claude-wrapper, remote-daemon, cli, the admission gate and macos) still
waits for and requires a green static stage, and linux-preflight and
ci-status still fail the run when it is red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Sep 24, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@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 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

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

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: c4f327ee-c600-4ccd-a169-a9044568d847

📥 Commits

Reviewing files that changed from the base of the PR and between fb7311d and fbd0091.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • tests/test_ci_change_areas.py
 ________________________________________________________________________________
< Please don't use comments to explain what code should be doing. Make it do it. >
 --------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ

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: 95c9d31b-c95f-4062-ad81-b5bcaa3f19f2

📥 Commits

Reviewing files that changed from the base of the PR and between bf13034 and fb7311d.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • docs/contributor-verification.md
  • tests/test_ci_change_areas.py

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


📝 Walkthrough

Walkthrough

Four Linux-only CI jobs now run after changes without waiting for static-preflight. Documentation and tests reflect the changed dependencies. Other specified jobs retain their static-preflight dependency.

Changes

CI job scheduling

Layer / File(s) Summary
Update CI job dependencies
.github/workflows/ci.yml, docs/contributor-verification.md, tests/test_ci_change_areas.py
The guards, ghosttykit-release-check, browser, and web jobs now depend only on changes. Documentation describes these jobs running beside static checks. Tests check the updated dependencies and verify that applicable jobs retain their static-preflight dependency.

Priority: ⬇️ Low

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

Change: Other

Merge Risk: ⚪ Minimal · up to fb731

Linux checks can start alongside static checks, while the final CI verdict still fails if static checks fail. 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 7 functions across 1 files. (2 skipped: 2 … 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: Linux-only CI jobs now start beside the fast static checks.
Description check ✅ Passed The description provides a detailed summary, explains the unchanged macOS gating, and documents tests run, failures, and remaining measurement limits. The omitted Demo Video and Checklist sections are…
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 CI dependency declarations, CI documentation, and CI routing tests. The authoritative diff contains no Cloud terminal creation, transport, cmux-tui, PTY, input owne…
Cmux Swift Actor Isolation ✅ Passed The authoritative PR diff changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It contains no Swift or other production source changes, so …
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. The authoritative diff contains no production Swift changes and intro…
Cmux Browser Automation Off-Main ✅ Passed The PR changes only CI workflow dependencies, documentation, and CI routing tests. The scoped browser automation sources are unchanged, and the diff introduces no browser socket command, WebKit/AppKit…
Cmux Expensive Synchronous Load ✅ Passed The pull request changes only GitHub Actions YAML, documentation, and Python CI tests. The authoritative diff contains no Swift files or production Swift changes, and it adds no synchronous agent-hist…
Cmux Cache Substitution Correctness ✅ Passed PASS: The authoritative PR diff changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It contains no production Swift, TypeScript, or JavaSc…
Cmux No Hacky Sleeps ✅ Passed PASS: The PR changes only GitHub Actions YAML, documentation, and Python CI tests. GitHub Actions YAML is explicitly out of scope. The added test is deterministic test-only scaffolding and introduces …
Cmux Algorithmic Complexity ✅ Passed The pull request changes only CI workflow dependencies/comments, documentation, and Python CI tests. It introduces no production Swift, TypeScript, JavaScript, shell, or runtime algorithm. The algorit…
Cmux Swift Concurrency ✅ Passed PASS: The reviewed range changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It changes CI dependencies and tests only. No Swift files or …
Cmux Swift @Concurrent ✅ Passed PASS: The pull request changes only CI workflow, documentation, and Python test files. The authoritative diff contains no Swift files or Swift code, so the Swift @concurrent check is not applicable.
Cmux Swift Package Boundaries ✅ Passed The reviewed diff changes only GitHub Actions YAML, documentation, and Python tests. It contains no Swift source, SwiftPM package, or app-target change. Therefore the Swift package-boundary rule does …
Cmux Swiftpm Lockfiles ✅ Passed The authoritative PR diff changes only .github/workflows/ci.yml, documentation, and CI tests. It changes job ordering and needs lists, but it does not change Package.swift, Package.resolved, `…
Cmux Swift Logging ✅ Passed The PR changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It adds no Swift, Objective-C, or logging statements. The Swift logging check i…
Cmux User-Facing Error Privacy ✅ Passed PASS. The authoritative diff changes only GitHub Actions scheduling, contributor documentation, and CI tests. The workflow additions are developer-only CI comments and dependency changes; they do not …
Cmux Full Internationalization ✅ Passed PASS: The PR changes only CI workflow dependencies/comments, contributor verification documentation, and CI tests. It adds no Swift UI text, string-catalog or Info.plist entries, web UI/API/markdown p…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. The authoritative diff contains no Swift or SwiftUI source chan…
Cmux Architecture Rethink ✅ Passed PASS: The authoritative PR diff changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It contains no Swift, SwiftUI, AppKit, or platform-bri…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The pull request changes only CI workflow, documentation, and Python test files. The authoritative diff contains no Swift changes and does not add or modify any cmux-owned window code.
Cmux Source Artifacts ✅ Passed The PR changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. These are intentional workflow configuration, documentation, and regression-tes…
Cmux No Test Or Debug Seam In Production Source ✅ Passed The pull request changes only .github/workflows/ci.yml, docs/contributor-verification.md, and tests/test_ci_change_areas.py. It contains no changed Swift file under a production Sources/ path,…
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 7 functions across 1 files. (2 skipped: 2 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
📝 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.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 24, 2026 08:19
@cursor

cursor Bot commented Sep 24, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

…eflight-wait

# Conflicts:
#	.github/workflows/ci.yml
#	tests/test_ci_change_areas.py
@teamleaderleo
teamleaderleo merged commit 0b9b318 into main Sep 24, 2026
50 of 51 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 24, 2026
4aa2736 Fix cmux events access-denied stream error (manaflow-ai#10712)
f4ff9af ci: never let a focused test run pass after executing zero tests (manaflow-ai#14053)
fbaf239 Fix persistent LaunchServices registration from duplicate plist keys (manaflow-ai#12990)
7b1cb4a Fix Hermes gateway with symlinked venv Python (manaflow-ai#12996)
b6b2720 ssh-tmux mirror: preserve deliberate pane titles (manaflow-ai#10714)
33edbc7 Fix Cloud VM panel text readability across all terminal themes (manaflow-ai#7538)
30dccd6 fix: prevent detached TUI preferred editor processes (manaflow-ai#10681)
22eec58 Reap disowned shell watchers on parent PID reuse (issue 10926) (manaflow-ai#11035)
0b9b318 ci: start Linux-only jobs beside Fast static checks (manaflow-ai#14181)
9e78d22 ci: one git archive for the trusted router; delete duplicate CI guard tests (manaflow-ai#14199)
20e79e6 feat: load local cmux config packs (manaflow-ai#13356)
224327b ci: download the admission DerivedData seed while packages resolve (manaflow-ai#14184)
886a6f0 ci: run changed suites inside compile admission (manaflow-ai#14182)

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci.yml
#	.github/workflows/test-e2e.yml
#	.github/workflows/test-macos-suite.yml
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