Skip to content

ci: count an unwritable Homebrew prefix as a machine failure - #15070

Merged
teamleaderleo merged 1 commit into
mainfrom
ci/machine-failure-brew-perms
Sep 27, 2026
Merged

teamleaderleo merged 1 commit into
mainfrom
ci/machine-failure-brew-perms

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

A macOS runner whose /opt/homebrew is not owned by the runner user fails in the test step's Homebrew install, before any test starts: "The following directories are not writable by your user". Run 36356259693 hit it on one owned Mac. The code under test cannot cause this, so scripts/ci/machine_failure.py now lists it with the other runner-level signatures. The focused dispatcher then retries it automatically, and the regression bisect counts it as an error, not a failing commit.

The Mac itself still needs its Homebrew prefix fixed (chown -R to the runner user). This change only stops the error from being read as a test result.

Testing

tests/test_ci_machine_failure.py adds a case for the Homebrew message. All cases pass locally.

Changelog

none

🤖 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

Counts a macOS runner whose Homebrew prefix isn't writable by the runner user as a machine failure instead of a product failure, so the focused dispatcher retries it and the regression bisect no longer blames a commit. Adds a test case for the Homebrew error message.

Written for commit 04aad34. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Bug Fixes
    • Machine failures caused by an unwritable Homebrew prefix are now reported with a clear explanation.

A runner whose /opt/homebrew is not owned by the runner user fails
before any test starts ("The following directories are not writable by
your user"), as run 36356259693 did. The code cannot cause it, so the
focused dispatcher and the bisect treat it as a machine failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@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 27, 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: 83bf7ef4-f530-4219-88b1-3ba0f710d9e8

📥 Commits

Reviewing files that changed from the base of the PR and between 51aad0b and 04aad34.

📒 Files selected for processing (2)
  • scripts/ci/machine_failure.py
  • tests/test_ci_machine_failure.py
 _________________________
< No pants, fast results! >
 -------------------------
  \
   \   \
        \ /\
        ( )
      .( 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.

@teamleaderleo
teamleaderleo merged commit 0485e93 into main Sep 27, 2026
56 of 57 checks passed
@teamleaderleo
teamleaderleo deleted the ci/machine-failure-brew-perms branch September 27, 2026 23:01
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 04aad3474d: every check was green at merge (13 verified; 18 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 27, 2026
0485e93 ci: count an unwritable Homebrew prefix as a machine failure (manaflow-ai#15070)
8ce15d4 Show Cloud machine-list recovery instead of a stale 'unreachable' on return (manaflow-ai#14777)
51aad0b test: keep remote OpenCode fixture paths consistent (manaflow-ai#15062)
83270f1 test: bound remaining yield-count polls by deadlines (manaflow-ai#14488)
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