CI run 25799596445 failed on 6 SPM packages + the App target. Root cause
was a toolchain skew between local dev (Swift 6.3.2 / Xcode 26) and CI
(Swift 6.0 / Xcode 16):
- mlx-audio-swift v0.1.2 ships swift-tools-version:6.2 which Swift 6.0
cannot parse, breaking Voice + Harness + the App target with
"Dependencies could not be resolved because 'mlx-audio-swift' contains
incompatible tools version (6.2.0)".
- MCP swift-sdk 0.12.0 uses the new `withThrowingTaskGroup` overload
(no `of:` parameter) that only exists in Swift 6.2+.
- AgentCore tests use `@MainActor` XCTestCase with `await super.setUp()`,
a pattern Swift 6.0 rejects but Swift 6.1+ accepts.
The macos-15 runner already ships Xcode 26.3 / 26.2 / 26.1 / 26.0
alongside 16.x, so the fix is to switch the Xcode select. Fallback to
Xcode_26.app preserves robustness against patch-level shuffles.
Also:
- Drop `VoiceLog` from the SPM matrix. No `packages/VoiceLog` directory
exists; the job failed with `chdir error: No such file or directory`.
Voice-log work is parked under v1.1.
- Bump BatcherTests `waitForDrain` from 80ms to 250ms. The batcher
window is 33ms; 80ms was tight enough that macos-15 dropped
test_tokenDeltaConcat with sendCount=0 because the scheduled drain
hadn't completed its actor + main-actor hop before the test resumed.
250ms (~7.5× the window) survives CI jitter; verified locally — all
five Batcher tests pass in 1.27s.
Refs: CI run 25799596445.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>