CANARY (do not merge): cmux incremental rebuilds on the macOS 15 pool
Do not merge. Pins macos-compile-admission to blacksmith-6vcpu-macos-15 with Xcode 26.3, passes -driver-show-incremental to the cmux target only, then rebuilds cmux-unit after body-only edits to Sources/Sidebar/GPUSpinner.swift: cache on, cache off for cmux, and Xcode 26.6 if the image has it. It snapshots bridging headers, PCHs and -Swift.h around each build.
Context: run 36035657899 (macOS 15, Xcode 26.3) recompiled all 5,218 cmux files for one body edit; macOS 26 with Xcode 26.6 compiled 1 task (runs 36081880621, 36023639795).
๐ค Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Do not merge โ addresses why a body-only edit to one app file recompiles the entire cmux target on the macOS 15 pool, and adds a canary to measure the fix before Xcode 26.6.
On Xcode 26.3, the compilation cache rewrites the app's ChainedBridgingHeader.h and bridging PCH with identical bytes but newer mtimes every build, so one body edit recompiles all ~5,200 cmux files in 448โ495 s. Turning the cache off for cmux compiles the same edit to 2 tasks in 41 s; Xcode 26.6 compiles incrementally with the cache on, so it keeps it.
- Adds a version gate and accompanying test so the app target builds without the compilation cache before Xcode 26.6, and with it on for 26.6+.
- Pins the compile job to
blacksmith-6vcpu-macos-15and runs a canary that editsSources/Sidebar/GPUSpinner.swift, rebuildscmux-unit, and snapshots bridging headers, PCHs, and generated-Swift.hfiles around each build.