Skip to content

ci: avoid partial blobs in catch-up merges - #15023

Merged
teamleaderleo merged 1 commit into
manaflow-ai:mainfrom
teamleaderleo:ci/catch-up-full-blobs
Sep 27, 2026
Merged

teamleaderleo merged 1 commit into
manaflow-ai:mainfrom
teamleaderleo:ci/catch-up-full-blobs

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

PR catch-up uses actions/checkout with fetch-depth: 0 and filter: blob:none for the candidate. Git then fetches promised blobs on demand during the merge; this has intermittently failed with could not fetch ... from promisor remote when the pack's delta base is unavailable. The same failure occurred in catch-up runs 36326920833 and 36328026705.

Keep the candidate checkout full-blob while retaining the existing no-credentials, no-submodules, and no-LFS boundaries. This avoids the partial-clone failure during merge and keeps the trusted tooling model unchanged.

Validation: python3 -m unittest tests.test_ci_catch_up_pr (68 passed); git diff --check.

— Toolbox g1 🔔
Run: run_cmux_pr_landing_20260927_9ec367b4


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

Fixes intermittent catch-up merge failures caused by partial-clone checkout.

The candidate checkout in pr-catch-up.yml used filter: blob:none, so git fetched promised blobs on demand during the merge, which occasionally failed with could not fetch ... from promisor remote. The checkout now keeps complete blobs while retaining the existing no-credentials, no-submodules, and no-LFS settings.

  • Removes filter: blob:none from the pull request head checkout in pr-catch-up.yml.
  • Preserves full history and data-only boundaries; no other workflow behavior changes.

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

Review in cubic

Summary by CodeRabbit

  • Chores
    • Improved the reliability of automated pull-request processing by ensuring repository content needed during updates is available.
    • This change affects the behind-the-scenes workflow only; it does not alter app features or user-facing behavior.

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

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: 90c41b79-9eb9-4fa8-92fa-e8fcfb5208f5

📥 Commits

Reviewing files that changed from the base of the PR and between 4d0d112 and e480db0.

📒 Files selected for processing (1)
  • .github/workflows/pr-catch-up.yml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The pull-request-head checkout in the catch-up workflow no longer requests a blobless partial clone. Its comment now states that the checkout retains full history and complete blobs.

Changes

Pull-request-head checkout

Layer / File(s) Summary
Checkout configuration
.github/workflows/pr-catch-up.yml
The checkout comment now describes retaining full history and complete blobs. The checkout no longer sets filter: blob:none.

Priority: ⬇️ Low

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

Change: Bug fix

Merge Risk: ⚪ Minimal · up to e480d

The catch-up checkout now retains complete blobs, avoiding the on-demand blob retrieval that prompted this change. No actionable merge risk is identified.

Architecture Summary

Architecture risk: 🔵 Low · up to e480d

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/pr-catch-up.yml: The checkout comment now specifies that full history and complete blobs are retained; it replaces the prior description of a blobless checkout that fetched blobs on demand.
  • observed — Modified behavior in .github/workflows/pr-catch-up.yml: The filter: blob:none checkout option was removed, so the pull-request head checkout no longer requests a blobless partial clone.
🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: preventing partial-blob failures in catch-up merges.
Description check ✅ Passed The description clearly explains the failure, the workflow change, the preserved boundaries, and the validation performed. It omits the template's explicit Changelog and Checklist sections, but the co…
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 diff only changes .github/workflows/pr-catch-up.yml to remove filter: blob:none from a GitHub Actions checkout and updates comments. It does not change Cloud terminal creation, cmux-tui …
Cmux Swift Actor Isolation ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. The diff contains no Swift production code, so it cannot introduce or worsen Swift actor-isolation mistakes.
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only .github/workflows/pr-catch-up.yml. The diff removes filter: blob:none from an actions/checkout step and updates comments. It introduces no Swift code or blocking/ti…
Cmux Browser Automation Off-Main ✅ Passed PASS. The PR changes only .github/workflows/pr-catch-up.yml to remove filter: blob:none from an actions/checkout step. The scoped rule applies to browser socket automation commands in two Swift …
Cmux Expensive Synchronous Load ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. The diff removes filter: blob:none from an actions/checkout step and updates comments. It adds no production Swift code, sy…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. It removes filter: blob:none from an actions/checkout step and updates comments. It does not change production Swift, TypeS…
Cmux No Hacky Sleeps ✅ Passed PASS. The PR changes only .github/workflows/pr-catch-up.yml. It removes filter: blob:none and updates comments; it does not add a sleep, timer, polling loop, delay, or wall-clock wait. The applica…
Cmux Algorithmic Complexity ✅ Passed The PR changes only .github/workflows/pr-catch-up.yml. It removes filter: blob:none from the candidate checkout and updates comments. It does not add or modify production iteration, collection sca…
Cmux Swift Concurrency ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. It adds no Swift code and does not introduce or expand any Swift concurrency pattern covered by this check.
Cmux Swift @Concurrent ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. The diff removes filter: blob:none and updates comments; it introduces no Swift files, functions, call sites, `nonisolated as…
Cmux Swift Package Boundaries ✅ Passed PASS: The authoritative PR diff changes only .github/workflows/pr-catch-up.yml. It adds and removes workflow comments and removes the filter: blob:none checkout option. It introduces no production…
Cmux Swiftpm Lockfiles ✅ Passed The pull request changes only .github/workflows/pr-catch-up.yml: it removes filter: blob:none and updates comments. It does not change a cmux package .gitignore, Package.swift dependencies, Xc…
Cmux Swift Logging ✅ Passed The pull request changes only .github/workflows/pr-catch-up.yml. It adds workflow comments and removes filter: blob:none; it adds no Swift files, runtime logging, or diagnostic output. The Swift l…
Cmux User-Facing Error Privacy ✅ Passed PASS: The pull request only changes an internal GitHub Actions checkout configuration and developer-only workflow comments. It removes filter: blob:none and documents the partial-clone risk. No user…
Cmux Full Internationalization ✅ Passed PASS. The PR changes only .github/workflows/pr-catch-up.yml: it removes filter: blob:none and updates workflow comments for the candidate checkout. This is CI configuration and developer-facing op…
Cmux Swiftui State Layout ✅ Passed The pull request changes only .github/workflows/pr-catch-up.yml. The diff contains no Swift, SwiftUI, or state-layout changes, so the SwiftUI-specific failure conditions do not apply.
Cmux Architecture Rethink ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. It contains no Swift source or Swift architecture changes. The check is not applicable.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. The authoritative diff contains no Swift files and no standalone cmux-owned window changes. The auxiliary-window close-shortcut…
Cmux Source Artifacts ✅ Passed The PR changes only .github/workflows/pr-catch-up.yml, a hand-written CI configuration. The diff removes filter: blob:none and updates comments; it adds no local output, generated artifact, cache,…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The pull request changes only .github/workflows/pr-catch-up.yml. It adds/removes no Swift file under a production Sources/ path, so it cannot introduce a test or debug seam in production Swi…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • 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 ff61677 into manaflow-ai:main Sep 27, 2026
43 of 44 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for e480db076e: every check was green at merge (9 verified; 12 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
648d5c1 Add a Paste Last Screenshot action with an unbound shortcut (manaflow-ai#14955)
ff61677 ci: avoid partial blobs in catch-up merges (manaflow-ai#15023)
4d0d112 ci: retry transient catch-up GraphQL failures (manaflow-ai#15021)
212e808 ci: attribution scores a lone suspect and reports app-host crashes apart (manaflow-ai#14952)
4cabdf4 test: settle the window before measuring the unread sidebar-row invalidation (manaflow-ai#14568)
12ec99b Add a release-media capture tool for changelog screenshots and clips (manaflow-ai#15010)
ee2cda0 Backfill Unreleased changelog and draft next release cards (manaflow-ai#14999)
be4adf8 Show a brief notice when Cmd+V fails on an oversized image or a timeout (manaflow-ai#14953)
23d22d7 ci: an owned pool the run starts on now beats an earlier one it queues on (manaflow-ai#14993)
05d0190 ci: catch-up posts once per head, says less, and merges inserted declarations (manaflow-ai#15018)
4ee4b21 ci: fail stalled Swift package tests instead of waiting out the job timeout (manaflow-ai#14997)
9ce512a merge-main: run local guards only when asked (manaflow-ai#15016)
d60108a ci: clear test-e2e's fixed DerivedData with clear-dirs.sh (manaflow-ai#14994)
1d7895e ci: run the shell and CLI no-socket lanes in parallel (manaflow-ai#14990)
6e7d25f Honor macOS Differentiate Without Color, Increase Contrast and Reduce Transparency (manaflow-ai#14991)
966b355 Stop interrupting focused work: sidebar jumps, Computer Use focus steal, quit dialog on logout (manaflow-ai#14961)
e1f1cb2 Strip control characters from feedback attachment filenames (manaflow-ai#14783)
0758c9f test: find the onboarding window the test presented, not a leftover (manaflow-ai#15015)
b35c540 fix(spm): resolve GhosttyKit/GhosttyRuntimeTestStubs target name collisions (manaflow-ai#10569)
ef33bed Map .purs artifacts to the Haskell highlight.js grammar (manaflow-ai#14202)
e2a167a Highlight Elixir and Erlang files in the file editor (manaflow-ai#13732)
972c449 fix: wrap Linux browser download card label (manaflow-ai#11157)
f563884 Add Aside to browser data import detection (manaflow-ai#13379)
091d0ea Add cmux send --paste and hint at it for large multi-line sends (manaflow-ai#14937)
3ffcdbb test(ios): keep folder-tap stat tests off the real 2 s deadline (manaflow-ai#15017)
68d3936 test: keep CmuxTerminal pasteboard tests off the cooperative pool (manaflow-ai#15006)
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