Skip to content

ci(ios): iOS CI lane pinned to Xcode 26.0 / Swift 6.2 (matches ship)#12

Merged
boggspa merged 2 commits into
masterfrom
ci/ios-lane-pinned
Jun 18, 2026
Merged

ci(ios): iOS CI lane pinned to Xcode 26.0 / Swift 6.2 (matches ship)#12
boggspa merged 2 commits into
masterfrom
ci/ios-lane-pinned

Conversation

@boggspa

@boggspa boggspa commented Jun 18, 2026

Copy link
Copy Markdown
Owner

Adds the iOS CI gate the release-readiness review asked for, pinned to the toolchain TaskWraith actually ships with.

  • Runner: macos-26 (needs the iOS 26 SDK — TaskWraithUI uses .glassEffect).
  • Xcode pinned to 26.0 (Swift 6.2) via setup-xcode, matching local/ship. The runner default is Xcode 26.5 / Swift 6.3.2, whose region-isolation sending diagnostics are errors that Swift 6.2.4 accepts — pinning keeps CI equivalent to what ships, so the lane fails on real regressions, not latent concurrency debt.
  • A pre-pin ls /Applications/Xcode*.app prints the runner's available Xcodes (so if 26.0 isn't there, we see it and fall back to Swift-5 language mode).
  • Steps: swift test --package-path ios/TaskWraithKit + an unsigned xcodebuild of the app target.

Tracked follow-up: clear the Swift-6.3 region-isolation debt in RemoteSessionModel (1613/2620, +any others 6.3 flags) before bumping the pin — that's the version Apple's tooling will eventually require.

🤖 Generated with Claude Code

boggspa and others added 2 commits June 18, 2026 20:30
…toolchain)

iOS gate: macos-26 runner (for the iOS 26 SDK that `.glassEffect` needs), with
Xcode pinned to 26.0 (Swift 6.2) so CI matches the toolchain the app actually
ships with. The runner default (Xcode 26.5 / Swift 6.3.2) rejects region-
isolation `sending` diagnostics as errors that local Swift 6.2.4 accepts, so an
unpinned lane fails on latent concurrency debt, not real regressions. A pre-pin
`ls /Applications/Xcode*.app` prints the runner's available Xcodes (fallback to
Swift-5 language mode if 26.0 isn't present). Runs `swift test` on TaskWraithKit
+ an unsigned simulator build of the app target.

Follow-up (tracked): clear the Swift-6.3 region-isolation debt in
RemoteSessionModel before bumping the pin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…; keep swift test

First pinned run: Xcode 26.0.1 selected fine and `swift test` PASSED (Kit + UI
compile + 73 tests green on the ship Swift 6.2). Only the app-target xcodebuild
failed — the pinned older Xcode has no iOS 26 simulator platform installed
(GitHub pre-installs it only for the default Xcode 26.5), and -downloadPlatform
would cost minutes+GBs per run for a thin wrapper. swift test already compiles
all the SwiftUI/Glass code + runs the tests, so it's the real gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@boggspa boggspa merged commit 4de1c74 into master Jun 18, 2026
18 checks passed
@boggspa boggspa deleted the ci/ios-lane-pinned branch June 18, 2026 19:48
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