Skip to content

ci: land the fleet review fixes #14159 merged without - #14165

Merged
teamleaderleo merged 2 commits into
mainfrom
claude/fleet-review-followups
Sep 24, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
claude/fleet-review-followups

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

#14159 auto-merged at 43f2c06. The commit that addressed its CodeRabbit review (40ccf9196a) arrived a minute later and never reached main. That PR's review threads say "Fixed in 40ccf91", so this PR makes that true:

  • Xcode pin behind an unreadable org endpoint. read_variables() read the organization variables first, and a failure there stopped it before it reached the repository variables that hold the pin. up then checked the mini against the fallback path, not the pin. The organization read is now optional; the repository read is still required.
  • Empty pilot cohort. The doctor marked it as a problem but then printed "Next: nothing; the fleet is routing" even though nothing routes. It now says to run scripts/persistent-compile pilot <your PR number>.
  • quarantine without a runner. When the Glaeda step failed, the error said "the runner is stopped" even on a machine with no runner configured. It now says "no runner is configured".
  • Drain wait. This answers ci: guard the fleet routing switch, Xcode pin and quarantine #14159's "no hacky sleeps" pre-merge error. drain and quarantine polled pgrep every 2 seconds. They now wait on the job process's exit through kqueue NOTE_EXIT, bounded by the drain deadline, so the runner stops the moment the job ends.

One fix is new here. It covers the gap #14159's last comment left open. Running quarantine <reason> on a mini that is already quarantined keeps the old reason, because Glaeda has no quarantined → quarantined transition. It used to do this silently; it now says which reason stays.

Testing

Checklist

  • I added or updated tests for behavior changes

🤖 Generated with Claude Code

https://claude.ai/code/session_01RSxoKWiT1D35DDmEYxk59f


Generated by 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

Lands the CodeRabbit review fixes from #14159 that auto-merged before they could reach main.

Fixes

  • Organization variables are now optional; the Xcode pin at the repository level is still required.
  • An empty pilot cohort now tells the operator to run scripts/persistent-compile pilot <PR number>.
  • drain and quarantine now wait on the worker process exit via kqueue NOTE_EXIT instead of polling pgrep.
  • Errors no longer report a stopped runner when none is configured.
  • Re-quarantining with a new reason prints that the previous reason is kept instead of silently ignoring the change.

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

Review in cubic

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

@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: ed4ab38c-a374-4f49-ab73-e7e2a665dfc0

📥 Commits

Reviewing files that changed from the base of the PR and between adddb59 and c92b115.

📒 Files selected for processing (2)
  • scripts/ci/persistent_compile_fleet.py
  • tests/test_ci_persistent_compile_fleet.py
 __________________________________________________________________________________________
< Recursion is the root of computation since it trades description for time. - Alan Perlis >
 ------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ 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.

@github-actions

Copy link
Copy Markdown
Contributor

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

teamleaderleo and others added 2 commits September 23, 2026 23:23
Fails on main: an unreadable organization-variables endpoint hides the
repository Xcode pin, an empty pilot cohort leaves the doctor with no next
step, quarantine reports a stopped runner when none is configured, drain
polls instead of waiting on the job's exit, and re-quarantining keeps the
old reason silently.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RSxoKWiT1D35DDmEYxk59f
arrived, so these are restored from that branch:

- read_variables: an unreadable organization endpoint no longer hides the
  repository Xcode pin.
- doctor: a pilot with an empty cohort names the pilot command as next.
- quarantine: do not report a stopped runner when none is configured.
- drain and quarantine wait on the job's exit through kqueue NOTE_EXIT
  instead of a 2s pgrep poll.

And one new: re-quarantining with a different reason says the old one stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RSxoKWiT1D35DDmEYxk59f
@teamleaderleo
teamleaderleo force-pushed the claude/fleet-review-followups branch from 0f2a2f6 to c92b115 Compare September 24, 2026 06:25
@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 24, 2026 06:25
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Rebased onto main after #14164 merged. That PR already landed three of the fixes described above: the optional organization-variables read, the next step for an empty pilot, and the "no runner is configured" error. The conflicts kept main's version of each fix and its tests.

This PR now adds only two things:

  • The kqueue NOTE_EXIT drain wait.
  • The message saying the old reason stays when a quarantined mini is quarantined again.

69 fleet tests pass, and so does tests/test_ci_change_areas.py. Auto-merge (squash) is on.

@teamleaderleo
teamleaderleo merged commit 82ea1ed into main Sep 24, 2026
39 of 40 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 24, 2026
9567d6e refactor: give About and Licenses windows explicit ownership (manaflow-ai#13148)
fae46b6 ci: stop retrying a missing cmux-tui manifest (manaflow-ai#14168)
8421357 Point PR checklist and welcome note at the hidden Review Trigger block (manaflow-ai#14167)
b9415db ci: run app-host product consumers on compile admission's pool and Xcode (manaflow-ai#14163)
ac0ceae fix(sidebar): order panels without reading split-container geometry (manaflow-ai#13931)
37edc16 ci: judge Web complexity's trusted files in the pull request's merge (manaflow-ai#14018)
679f4e2 ci: leave three-day-old queued ghosts to GitHub instead of retrying them (manaflow-ai#14166)
07a2e22 fix(web): enumerate complexity-gate sources with git ls-files -z (manaflow-ai#13682)
c72f659 cloud: share concurrent VM stats reads (manaflow-ai#13327)
aa51f16 ci: trim package setup before the macOS compile admission build (manaflow-ai#14160)
82ea1ed ci: land the fleet review fixes manaflow-ai#14159 merged without (manaflow-ai#14165)
adddb59 docs: propose routing CI by capability instead of by vendor (manaflow-ai#14010)
f862390 ci: fix three fleet command gaps from the manaflow-ai#14159 review (manaflow-ai#14164)
77d56b3 agent-chat: make installed harnesses first-class (manaflow-ai#13347)
7dc57f6 Clarify writing guidance for issue and PR descriptions (manaflow-ai#13275)
ccf4963 ci: name the hung test when a Swift package test step stalls (manaflow-ai#14055)
9fca985 ci: guard the fleet routing switch, Xcode pin and quarantine (manaflow-ai#14159)
02972b7 fix: thin around and Developer ID sign the bundled cmux-tui SSH payloads (manaflow-ai#14154)

# Conflicts:
#	.github/workflows/app-host-test-rerun.yml
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/test-ios.yml
#	.github/workflows/web-complexity-trusted.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