Skip to content

ci: stop restoring an iOS GhosttyKit cache nothing saves - #14189

Merged
teamleaderleo merged 2 commits into
mainfrom
ci/ios-drop-ghosttykit-cache
Sep 24, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
ci/ios-drop-ghosttykit-cache

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

test-ios.yml restores an ios-ghosttykit-* cache on every run, and it has never hit. The only writer was a manual main dispatch with seed_cache=true, and none has been sent. Runs 35973431841, 35970618613, and 35967522480 all log "no entry". This PR removes the restore and the save instead of adding a writer, because a hit would save almost nothing.

On a miss, Provision GhosttyKit takes 3 to 4 s. ensure-ghosttykit.sh downloads the pinned 123 MB prebuilt at about 200 MB/s and verifies its checksum. The cache would hold the unpacked xcframework, and restoring that from R2 takes about as long. Adding a writer would mean a ci-cache-writer environment and R2 secrets on a dispatch-only workflow whose ref input can check out branch code, all to save a second or two. When there's no pinned prebuilt for a Ghostty SHA, the fallback is a source build keyed by that same SHA. The first run on a new SHA would miss either way.

Also removed: the Capture Ghostty revision step, which only these two steps used. seed_cache now describes what it still saves, the iOS SwiftPM cache. CMUX_GHOSTTYKIT_CACHE_DIR still points the provisioner at $RUNNER_TEMP, so reused self-hosted runners don't collect xcframeworks in $HOME. #14180 covers ios-spm-* from the TestFlight lanes and doesn't touch this file.

Validation. No test pins these steps (grep of tests/). test_ios_workflow_dispatch_ref.py, test_ios_video_recording.py, and test_ios_selected_test_execution.py pass locally. test_ios_simulator_build_once.py has 5 errors locally, and it has the same 5 on unmodified upstream/main. Fork CI: https://github.com/teamleaderleo/cmux/actions/runs/35976528789.

🤖 Generated with Claude Code


Summary by cubic

Removes the ios-ghosttykit-* cache restore and save from test-ios.yml, along with the Capture Ghostty revision step that only they used, because the restore has never hit and a hit would save almost nothing.

  • The only writer was a manual main dispatch with seed_cache=true, and none was sent; a miss costs 3–4 s, about what an R2 restore of the unpacked xcframework would take.
  • seed_cache now covers only the iOS SwiftPM cache, and CMUX_GHOSTTYKIT_CACHE_DIR still points at $RUNNER_TEMP so reused self-hosted runners don't collect xcframeworks in $HOME.
  • No test pins the removed steps; test_ios_simulator_build_once.py fails the same 5 ways on unmodified upstream/main.

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

Review in cubic

test-ios.yml restored ios-ghosttykit-* on every run, but only a manual
main dispatch with seed_cache=true saved it, and none was sent, so every
restore missed (runs 35973431841, 35970618613, 35967522480). A miss
costs 3-4 s: ensure-ghosttykit.sh downloads the pinned 123 MB prebuilt
at about 200 MB/s and verifies its checksum. Restoring the unpacked
xcframework from R2 would cost about the same, so a writer would add a
cache-writer environment and R2 secrets to a dispatch workflow whose
ref input can name branch code, for roughly nothing.

Remove the restore, the save, and the Ghostty revision step only they
used. seed_cache still saves the iOS SwiftPM cache.

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

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 6 seconds.

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: ceacb618-4d96-4c5d-9414-b5d6daaf23de

📥 Commits

Reviewing files that changed from the base of the PR and between 2837f22 and e3a5b9b.

📒 Files selected for processing (1)
  • .github/workflows/test-ios.yml

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>
@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 enabled auto-merge (squash) September 24, 2026 09:04
@teamleaderleo
teamleaderleo merged commit ff6c6dc into main Sep 24, 2026
49 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 24, 2026
ff6c6dc ci: stop restoring an iOS GhosttyKit cache nothing saves (manaflow-ai#14189)
2827231 ci: seed DerivedData on the 12 vCPU macOS 26 pool (manaflow-ai#14188)
ae46aa9 Let Computer Use toggles save past unrelated cmux.json issues (manaflow-ai#14183)
a785270 test: fail loudly when portal rendering authority denies a fixture's tab id (manaflow-ai#13937)
9a1dea0 test: pin which terminal tabs get an agent mark after manaflow-ai#14062 (manaflow-ai#14177)
91bcb28 test: run the change-area tests in parallel workers (manaflow-ai#14193)
6d203e8 test: await the geometry publish in the equalize-splits shortcut case (manaflow-ai#13916)
48f1adf ci: balance the guard legs the macOS gate waits on (manaflow-ai#14186)
38117cd test: settle the split's reparent-focus suppression before focus feedback (manaflow-ai#14049)
a12a0b8 ci: neutralize Swift sources without a per-character loop (manaflow-ai#14169)
2b6ca4c ci: stop counting queue time on cancelled jobs as runner minutes (manaflow-ai#14187)
2837f22 test: stop gating terminal focus on key status the app host cannot grant (manaflow-ai#13948)
23c0ce2 test: give each detect-step run its own cmux-ci scratch files (manaflow-ai#14185)
a13ea28 ci: skip Mac lanes that bundled scripts and guard-only lints cannot fail (manaflow-ai#14179)
b59f34f ci: restore Swift packages and a compilation cache for iOS uploads (manaflow-ai#14180)
bcca243 profiling: poll child processes every 0.1 s instead of every second (manaflow-ai#14170)
76d6176 refactor: move 45 leaf browser files into CmuxBrowser (manaflow-ai#14092)
bf13034 test: fail the Desktop drop fast instead of restarting the app host (manaflow-ai#14076)
51d486b ci: start guards and web beside Fast static checks (manaflow-ai#14176)

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci.yml
#	.github/workflows/ios-appstore-upload.yml
#	.github/workflows/ios-testflight.yml
#	.github/workflows/nightly.yml
#	.github/workflows/seed-derived-data.yml
#	.github/workflows/test-ios.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