Skip to content

ci: restore the git object seed before checkout in E2E and iOS macOS jobs - #14669

Merged
teamleaderleo merged 2 commits into
mainfrom
ci-e2e-git-seed
Sep 25, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
ci-e2e-git-seed

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

E2E and iOS macOS jobs cloned the repository and its submodules from scratch on every run: 55 s on a Blacksmith E2E build (https://github.com/manaflow-ai/cmux/actions/runs/36134675453/job/108069926979). ci-macos.yml jobs restore the R2 git object seed first and take 3 to 9 s (#14255).

This PR does the same for test-e2e.yml build and test and for test-ios.yml mobile-core-package and ios-simulator-build, using the same steps as ci-macos.yml:

  • scripts/ci/git-seed.sh restore, fetched at this commit because nothing is checked out yet.
  • A checkout with continue-on-error.
  • If that checkout fails, discard .git and retry without the seed.

A seed miss, or a reused self-hosted workspace, leaves checkout working as before. The E2E failure guard in tests/test_ci_self_hosted_guard.sh now allows the two optional steps.

Tests:

  • test_ci_git_seed.py covers the new jobs, both the seed before checkout and the retry.
  • These pass: test_ci_self_hosted_guard.sh, test_run_e2e.py, test_e2e_warm_derived_data.py, test_ios_selected_test_execution.py.
  • test_ios_simulator_build_once.py fails the same 5 ways on main.
  • test_ci_e2e_compilation_cache.py has one failure that also happens on main here. It is macOS bash 3.2 (ONLY_TESTING[@]: unbound variable).

🤖 Generated with Claude Code


Summary by cubic

Restores the R2 git object seed before checkout in E2E and iOS macOS jobs so they fetch only what changed since main instead of the whole tree and its submodules, cutting checkout from ~55 s to 3–9 s. If the seeded checkout fails, it discards .git and retries without the seed; a seed miss leaves checkout working as before. Also removes the --color/--icon CLI aliases and the color/icon RPC parameter aliases from workspace.group.set_color and set_icon — callers must use hex/symbol, and invalid values are no longer validated before being stored.

Bug Fixes

  • Clears stale git locks from reused self-hosted workspaces before the seeded checkout, so a cancelled job can no longer fail later submodule checkouts.
  • Tests in test_ci_git_seed.py and test_ci_self_hosted_guard.sh cover the new steps.

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

Review in cubic

…jobs

test-e2e.yml (build, test) and test-ios.yml (mobile-core-package,
ios-simulator-build) did a plain checkout with recursive submodules: 55 s on
a Blacksmith E2E build, against 3-9 s for ci-macos.yml jobs that restore the
R2 git seed first (#14255). They now restore it the same way, and a checkout
the seed breaks is retried without it. The E2E failure guard allows the two
new optional steps.

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

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 32 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

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

Review profile: ASSERTIVE

Plan: Advanced

Run ID: f53970ea-f8c6-4c43-a077-971bf2dcb9c4

📥 Commits

Reviewing files that changed from the base of the PR and between 3bfe0b6 and b2d6e44.

📒 Files selected for processing (7)
  • .github/workflows/test-e2e.yml
  • .github/workflows/test-ios.yml
  • CLI/cmux.swift
  • Packages/macOS/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/WorkspaceGroup/ControlCommandCoordinator+WorkspaceGroup.swift
  • Packages/macOS/CmuxControlSocket/Tests/CmuxControlSocketTests/ControlCommandCoordinatorWorkspaceGroupColorIconTests.swift
  • tests/test_ci_git_seed.py
  • tests/test_ci_self_hosted_guard.sh

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.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo merged commit 2509187 into main Sep 25, 2026
1 of 2 checks passed
@teamleaderleo
teamleaderleo deleted the ci-e2e-git-seed branch September 25, 2026 17:49
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for b2d6e44225, merged 2026-09-25 17:49:50 UTC

  • Not verified at merge: ci-status (not reported), Web complexity (not reported), web-validation (not reported)
  • Full suite: runs on main after merge.

Labeled merged-unverified: if main breaks near this merge, look here first.

@github-actions github-actions Bot added the merged-unverified A judging check was not green at merge; see the merge receipt comment label Sep 25, 2026
@blacksmith-sh

blacksmith-sh Bot commented Sep 25, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 25, 2026
bd2d34e test: expect split zoom to survive closing one tab of a zoomed pane (manaflow-ai#14664)
f8857c5 fix(scripts): append, not prepend, the cargo fallback PATH in build-cmux-cua.sh (manaflow-ai#14665)
56a3e4c fix: make the event-stream reconnect decision a value, not a static namespace (manaflow-ai#14661)
06e064d ci: pin cla.yml and claude.yml to a GitHub-hosted runner (manaflow-ai#14668)
2509187 ci: restore the git object seed before checkout in E2E and iOS macOS jobs (manaflow-ai#14669)
402d0ad docs: move team-internal fleet and session rules out of CLAUDE.md (manaflow-ai#14595)
3bfe0b6 pull_request_template: drop the commented @codex review trigger block (manaflow-ai#14599)
4f0ac55 fix(control): honor color/icon keys and validate hex in workspace.group.set_color/set_icon (manaflow-ai#13877)
805a699 ci(rescue): mint the read token with only the permissions the App has (manaflow-ai#14627)
7e662c0 Tell the user why a file upload failed (manaflow-ai#11476)
f04320e test: yield to the main queue while the Files tree catches up after its menu closes (manaflow-ai#14660)
a5f705b A mirrored tmux window with one pane shows two tab bars (manaflow-ai#11248)
74917a9 iOS: remove unshipped push reconnect banner

# Conflicts:
#	.github/workflows/ci-owned-pool-rescue.yml
#	.github/workflows/cla.yml
#	.github/workflows/claude.yml
#	.github/workflows/test-e2e.yml
#	.github/workflows/test-ios.yml
teamleaderleo added a commit that referenced this pull request Sep 25, 2026
…4671)

#14669 gave mobile-core-package and ios-simulator-build a retry checkout
without the git object seed, pinned to the same resolved SHA, so test-ios.yml
now has six resolved checkouts, not four. main's release-ios workflow guard
has failed on it since.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

This squash came from a stale base: besides the CI changes it reverted #13877 in CLI/cmux.swift and ControlCommandCoordinator+WorkspaceGroup.swift and deleted ControlCommandCoordinatorWorkspaceGroupColorIconTests.swift. Restore: #14677.

teamleaderleo added a commit that referenced this pull request Sep 27, 2026
* Restore workspace group color and icon key handling from #13877

The squash of #14669 (a CI-only change) also reverted #13877's changes to
CLI/cmux.swift and ControlCommandCoordinator+WorkspaceGroup.swift and deleted
its test file. This reapplies #13877 unchanged.

Co-authored-by: LuckVd <LuckVd@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Localize workspace group color/icon errors and stop echoing raw values

The five set_color/set_icon error messages go through
ControlWorkspaceGroupStrings like the other workspace-group errors, with
translations for every app locale. The error data names the rejected key
instead of echoing the caller's value, and the two pure parsing helpers are
nonisolated.

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

---------

Co-authored-by: LuckVd <LuckVd@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-unverified A judging check was not green at merge; see the merge receipt comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant