Fixes CI run 25799596445, which failed on 6 SPM packages + the App target.
Root cause: toolchain skew. Local dev runs Swift 6.3.2 (Xcode 26); CI selected Xcode 16 (Swift 6.0). Several dependencies + tests now require Swift 6.2+:
mlx-audio-swift v0.1.2 ships swift-tools-version:6.2. Swift 6.0 cannot parse it → resolution fails for Voice, Harness, and the App target.
MCP swift-sdk 0.12.0 uses the new withThrowingTaskGroup overload (no of: parameter) introduced in Swift 6.2.
AgentCore tests use @MainActorXCTestCase with await super.setUp() — rejected by Swift 6.0, accepted by Swift 6.1+.
The macos-15 runner already ships Xcode 26.3 (and 26.2 / 26.1 / 26.0) alongside Xcode 16.x, so switching the xcode-select target fixes everything in one shot.
Changes
ci.yml — Both Xcode-using jobs (swift-packages + app-build) now select /Applications/Xcode_26.3.app with /Applications/Xcode_26.app as fallback.
ci.yml — Drop VoiceLog from the SPM matrix. No packages/VoiceLog directory exists; the job failed with chdir error: No such file or directory. Voice-log capability lives under v1.1.
BatcherTests.swift — Bump waitForDrain from 80 ms to 250 ms. The batcher window is 33 ms; 80 ms was tight enough that the macos-15 runner dropped test_tokenDeltaConcat with sendCount=0. 250 ms (~7.5× window) survives CI jitter.
Test plan
swift test --package-path packages/Bus --filter BatcherTests passes locally (5/5 tests, 1.27 s).
CI run with this PR shows all 13 SPM jobs + App target green.
publish-tag fires after merge to develop with a v0.X.Y-dev.<run> pre-release.
## Summary
Fixes CI run [25799596445](https://github.com/KofTwentyTwo/Jarvis/actions/runs/25799596445), which failed on 6 SPM packages + the App target.
Root cause: toolchain skew. Local dev runs Swift 6.3.2 (Xcode 26); CI selected Xcode 16 (Swift 6.0). Several dependencies + tests now require Swift 6.2+:
- `mlx-audio-swift` v0.1.2 ships `swift-tools-version:6.2`. Swift 6.0 cannot parse it → resolution fails for Voice, Harness, and the App target.
- MCP `swift-sdk` 0.12.0 uses the new `withThrowingTaskGroup` overload (no `of:` parameter) introduced in Swift 6.2.
- AgentCore tests use `@MainActor` `XCTestCase` with `await super.setUp()` — rejected by Swift 6.0, accepted by Swift 6.1+.
The `macos-15` runner already ships Xcode 26.3 (and 26.2 / 26.1 / 26.0) alongside Xcode 16.x, so switching the `xcode-select` target fixes everything in one shot.
## Changes
- `ci.yml` — Both Xcode-using jobs (`swift-packages` + `app-build`) now select `/Applications/Xcode_26.3.app` with `/Applications/Xcode_26.app` as fallback.
- `ci.yml` — Drop `VoiceLog` from the SPM matrix. No `packages/VoiceLog` directory exists; the job failed with `chdir error: No such file or directory`. Voice-log capability lives under v1.1.
- `BatcherTests.swift` — Bump `waitForDrain` from 80 ms to 250 ms. The batcher window is 33 ms; 80 ms was tight enough that the macos-15 runner dropped `test_tokenDeltaConcat` with `sendCount=0`. 250 ms (~7.5× window) survives CI jitter.
## Test plan
- [x] `swift test --package-path packages/Bus --filter BatcherTests` passes locally (5/5 tests, 1.27 s).
- [ ] CI run with this PR shows all 13 SPM jobs + App target green.
- [ ] `publish-tag` fires after merge to `develop` with a `v0.X.Y-dev.<run>` pre-release.
Refs CI run 25799596445.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Fixes CI run 25799596445, which failed on 6 SPM packages + the App target.
Root cause: toolchain skew. Local dev runs Swift 6.3.2 (Xcode 26); CI selected Xcode 16 (Swift 6.0). Several dependencies + tests now require Swift 6.2+:
mlx-audio-swiftv0.1.2 shipsswift-tools-version:6.2. Swift 6.0 cannot parse it → resolution fails for Voice, Harness, and the App target.swift-sdk0.12.0 uses the newwithThrowingTaskGroupoverload (noof:parameter) introduced in Swift 6.2.@MainActorXCTestCasewithawait super.setUp()— rejected by Swift 6.0, accepted by Swift 6.1+.The
macos-15runner already ships Xcode 26.3 (and 26.2 / 26.1 / 26.0) alongside Xcode 16.x, so switching thexcode-selecttarget fixes everything in one shot.Changes
ci.yml— Both Xcode-using jobs (swift-packages+app-build) now select/Applications/Xcode_26.3.appwith/Applications/Xcode_26.appas fallback.ci.yml— DropVoiceLogfrom the SPM matrix. Nopackages/VoiceLogdirectory exists; the job failed withchdir error: No such file or directory. Voice-log capability lives under v1.1.BatcherTests.swift— BumpwaitForDrainfrom 80 ms to 250 ms. The batcher window is 33 ms; 80 ms was tight enough that the macos-15 runner droppedtest_tokenDeltaConcatwithsendCount=0. 250 ms (~7.5× window) survives CI jitter.Test plan
swift test --package-path packages/Bus --filter BatcherTestspasses locally (5/5 tests, 1.27 s).publish-tagfires after merge todevelopwith av0.X.Y-dev.<run>pre-release.Refs CI run 25799596445.
🤖 Generated with Claude Code