Skip to content

ci: sparse-checkout the Claude wrapper regression job - #14088

Merged
teamleaderleo merged 3 commits into
mainfrom
ci/claude-wrapper-sparse-checkout
Sep 24, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
ci/claude-wrapper-sparse-checkout

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

"Claude wrapper regressions" takes a slot in the contended macOS pool for one Python lane. Of about 1.1 min per run, 30 s went to checking out the whole tree (17,529 files, 323 MB, including web/, docs/, ios/ and cmux-tui/). The tests themselves take 33 s.

Behavior

The job's checkout is now sparse: only Resources/bin, scripts/ci and tests (plus root files, which checkout's default cone mode always includes). That comes to about 500 files and 7 MB.

Validation

I ran run_python_test_lane.py --lane macos-claude-wrapper from a sparse clone with exactly those three directories and from the full tree. Both give the same result on Linux: every check passes except "computer use auth file", which calls the Mac-only /usr/bin/stat -f and fails the same way on Linux with the full tree. All 139 linux-guard tests pass. actionlint shows no new findings.

🤖 Generated with Claude Code


Summary by cubic

Speeds up the "Claude wrapper regressions" CI job by checking out only the directories the lane reads instead of the full 17,529-file tree.

  • Checkout now pulls only Resources/bin, scripts/ci, and tests (plus root files): about 740 files and 7 MB instead of 323 MB, saving roughly 30 s per run.
  • The lane passes identically from a sparse clone and the full tree on Linux; the only failing check is Mac-only and fails the same way either way.

Written for commit 6a6f997. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Chores
    • Updated an automated validation job to retrieve only the project files it needs rather than the full repository.
    • The job now checks out selected resources, CI scripts, and tests, reducing the amount of repository content it processes.
    • This change affects the development and validation workflow only; it does not change app features, functionality, or the end-user experience.

The job runs one lane that reads Resources/bin, scripts/ci and tests, but
it checked out the whole 17,529-file, 323 MB tree on a macOS runner, which
took about 30 s against 33 s of tests. The lane passes the same from a
503-file, 7 MB sparse checkout of those three directories.

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

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their 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: 73e31054-6054-42eb-88d2-c4a93cc19ebc

📥 Commits

Reviewing files that changed from the base of the PR and between 6877751 and 6a6f997.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

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


📝 Walkthrough

Walkthrough

The claude-wrapper job’s checkout step now uses sparse checkout for Resources/bin, scripts/ci, and tests.

Changes

Checkout scope

Layer / File(s) Summary
Configure sparse checkout
.github/workflows/ci.yml
The claude-wrapper job’s checkout step specifies Resources/bin, scripts/ci, and tests as sparse-checkout paths.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 6a6f9

The sparse checkout includes the lane inputs identified in the supplied context. No concrete behavior change requiring a pre-merge fix is established.

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding sparse checkout to the Claude wrapper regression CI job.
Description check ✅ Passed The description explains the problem, resulting behavior, performance impact, and validation results. It does not use the template headings exactly and omits the checklist and review-trigger sections,…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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 changes only .github/workflows/ci.yml for the claude-wrapper job. It adds checkout sparse paths (Resources/bin, scripts/ci, and tests) and a comment. It does not…
Cmux Swift Actor Isolation ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml and adds actions/checkout sparse-checkout paths. It introduces no production Swift changes or actor-isolation behavior.
Cmux Swift Blocking Runtime ✅ Passed PASS: The PR changes only .github/workflows/ci.yml. The diff adds sparse-checkout paths and comments; it introduces no Swift code or production runtime synchronization.
Cmux Browser Automation Off-Main ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml to add sparse checkout paths for the Claude wrapper job. The diff contains no browser socket commands, WebKit/AppKit routing, worker-rout…
Cmux Expensive Synchronous Load ✅ Passed PASS: The authoritative PR diff changes only .github/workflows/ci.yml. It adds sparse-checkout paths to the claude-wrapper CI job and contains no Swift changes or agent-history loading behavior. T…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only .github/workflows/ci.yml and adds sparse-checkout paths to the Claude wrapper job. It introduces no production Swift, TypeScript, or JavaScript change and no pers…
Cmux No Hacky Sleeps ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml and adds sparse-checkout paths plus comments. The rule explicitly excludes GitHub Actions workflow YAML, and the added lines contain no s…
Cmux Algorithmic Complexity ✅ Passed The pull request changes only .github/workflows/ci.yml. The diff adds an actions/checkout sparse-checkout configuration and comments for the claude-wrapper CI job. It does not change production …
Cmux Swift Concurrency ✅ Passed The pull request changes only .github/workflows/ci.yml. It adds sparse-checkout paths to the Claude wrapper CI job and changes no Swift code or async behavior. The Swift concurrency check is therefo…
Cmux Swift @Concurrent ✅ Passed The pull request changes only .github/workflows/ci.yml. The authoritative diff contains no Swift, Objective-C, or related source changes, so the @concurrent check is not applicable.
Cmux Swift Package Boundaries ✅ Passed The pull request changes only .github/workflows/ci.yml. It adds sparse-checkout paths to a CI job and introduces no production Swift changes or Swift package-boundary changes. The custom check is th…
Cmux Swiftpm Lockfiles ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml by adding sparse checkout paths for the Python Claude wrapper lane. The diff contains no Package.swift, Package.resolved, `.gitignore…
Cmux Swift Logging ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml and adds sparse-checkout configuration. It adds no production Swift code or logging statements, so the Swift logging failure conditions d…
Cmux User-Facing Error Privacy ✅ Passed PASS. The PR changes only .github/workflows/ci.yml. It adds sparse checkout paths and a developer-facing CI comment for the claude-wrapper job. No app UI, product CLI, API response, or user-facing…
Cmux Full Internationalization ✅ Passed The PR changes only .github/workflows/ci.yml. It adds checkout configuration and a CI-only comment for the claude-wrapper job. It does not add or change Swift UI text, app catalogs, web UI text, A…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only .github/workflows/ci.yml. It adds GitHub Actions sparse-checkout paths and contains no SwiftUI, ObservableObject, @Published, GeometryReader, list-row store, or r…
Cmux Architecture Rethink ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml. It adds checkout sparse paths and a comment to the CI job. It introduces no Swift code or architecture changes, and it does not introduc…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The pull request changes only .github/workflows/ci.yml. The diff contains no Swift or window implementation changes, so the auxiliary-window close-shortcut rule does not apply.
Cmux Source Artifacts ✅ Passed PASS. The only changed path is .github/workflows/ci.yml. The diff adds a hand-written checkout configuration and comments for sparse-checkout; it does not add local output, generated files, caches…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The authoritative pull-request diff changes only .github/workflows/ci.yml. It adds sparse-checkout configuration to the claude-wrapper job and changes no Swift file under a production `Sourc…
✨ Finishing Touches
🧪 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

Copy link
Copy Markdown
Collaborator Author

Independent subagent review at 6877751 found no blocking defects.

  • What the lane reads: run_python_test_lane.py imports only test_execution_registry.py and reads tests/test-execution.toml.
  • What the test reads from the repo: only Resources/bin/cmux-claude-wrapper. It copies that file into temp directories. Every computer-use sandbox path, and every dirname "$0" lookup, resolves under the temp copy, never the repo.
  • Sparse vs full checkout: a cone-mode sparse clone and a full checkout give the same lane result. The only failure, "computer use auth file", fails on Linux in both, because the wrapper uses BSD stat.
  • Guards: none pins this job's with:, and the full linux-guard lane passes.
  • Nit: the checkout comes to about 736 tracked files, not the "about 500" in the comment. The wording doesn't affect behaviour.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 24, 2026 02:13
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.

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

@teamleaderleo
teamleaderleo merged commit afacff3 into main Sep 24, 2026
42 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 24, 2026
5b646b7 ci: apply the queue janitor threshold per runner pool (manaflow-ai#14131)
d49a1b1 ci: reuse the headless cmux-tui build in SDK conformance (manaflow-ai#14108)
ba85a1b ci: key reload-build caches on the commit and fall back across branches (manaflow-ai#14099)
27fb3bf ci: hand focused test-macos-suite dispatches to run-e2e.sh (manaflow-ai#14075)
d18c1b9 ci: let a failed compile admission mark a run doomed for the queue janitor (manaflow-ai#14129)
dfdce2c ci: bind pull request product reuse to the merge it compiled (manaflow-ai#14080)
afacff3 ci: sparse-checkout the Claude wrapper regression job (manaflow-ai#14088)
35a6bb1 ci: stop pinning remote-daemon macOS tests to the macOS 26 pool (manaflow-ai#14128)
1ba6d77 ci: run macOS jobs on GitHub-hosted runners alongside Blacksmith (manaflow-ai#14097)
587de87 Import CmuxWorkspaces where CodexTurnRestoreIntentPolicy names its liveness type (manaflow-ai#14123)

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci-queue-janitor.yml
#	.github/workflows/ci.yml
#	.github/workflows/cmux-tui-sdks.yml
#	.github/workflows/reload-build.yml
#	.github/workflows/remote-daemon.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