ci: build the app target without the compilation cache on every Xcode (no bead)
Summary
Main's macOS compile admission now builds the cmux app target without the Xcode compilation cache on every Xcode version. Before this change it did so only before 26.6.
On Xcode 26.6 (17F113), admission restores a DerivedData seed but still recompiles every app file, whatever the distance to the seed:
| Run | Seed tier | Changed inputs | Cache hits | SwiftCompile tasks |
|---|---|---|---|---|
| 38232844046 | near | 56 | 1 of 2,735 | 2,731 (4,112 CPU s) |
| 38318336606 | far | 5,571 | 1 of 2,713 | 2,711 (3,924 CPU s) |
| 38201033789 | rebuild | 1,478 | 76 of 2,856 | 2,844 (4,178 CPU s) |
This is the defect #14351 fixed for 26.3: under the cache the bridging header and PCH are rewritten on every build, so the restored state never counts. With the cache off for cmux on 26.3, a one-file edit compiled 2 tasks in 41 s. cmuxTests already builds without the cache. All other targets keep it.
Part of the incrementality work in cmuxterm-hq#1915. The target there is a PR compile p50 under 3 min; compile admission's compile step is 9.4 min p50 today.
Verification
- Red, then green:
bash tests/test_ci_test_compilation_cache_seed.sh. The red commit fails withFAIL: on Xcode 26.6 the app target must build without the compilation cache. After the fix, every check passes. python3 scripts/verify-local.py --affected origin/main: 16 of 16 checks passed.- Not verified locally: a real Xcode build, since there are no local builds on this host. The before/after receipt is this PR's own
macOS compile admissionstep time and itsSwiftCompile (N tasks)line, compared with the table above. The DerivedData seeds are rebuilt by the same script, so the full effect shows after the next seed refresh. - The default
verify-local.pyrun failsswift-syntaxon this Linux host. This PR changes no Swift files.
Changelog
none
๐ค Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Builds the cmux app target without the Xcode compilation cache on every Xcode version, instead of only before 26.6.
Xcode 26.6 keeps the cache for the app after one incremental run, but admission recompiles every app file from a restored DerivedData regardless of seed distance: 2,711โ2,844 SwiftCompile tasks per run with only 1โ76 cache hits. With the cache off, a one-file edit compiles 2 tasks in 41 s. cmuxTests already builds without the cache; all other targets keep it.
Summary by CodeRabbit
- Chores
- Build validation now uses consistent compilation-cache settings across Xcode versions for both the app and its tests, improving consistency in automated build checks. No changes to app features or behavior are included in this update.