refactor: Swift 6 言語モードへ移行(#16 前段)#35
Merged
Merged
Conversation
#16 の前段。CLAUDE.md の「落ち着いたら .v6 へ」に沿って strict concurrency へ。 - Package の全ターゲットを .swiftLanguageMode(.v6) に。 - アプリの SWIFT_VERSION を 6.0 に。 - プロセス実行の並行 drain で captured var を変異していた 3 箇所(ProcessRunner / GitRunner / GitHubEngine.run)を、ロック付き Sendable な DataBox 経由に統一して #SendableClosureCaptures 警告を解消。 - エンジン/ストア: 警告0・swift test 29 passed。アプリ: concurrency 警告0 (既存の NSSplitViewDelegate シグネチャ警告のみ・本移行とは無関係)。 TCA 化(UI 層のリライト)は #16 の後段として継続。
sasagar
added a commit
that referenced
this pull request
Jul 2, 2026
#16 の前段。CLAUDE.md の「落ち着いたら .v6 へ」に沿って strict concurrency へ。 - Package の全ターゲットを .swiftLanguageMode(.v6) に。 - アプリの SWIFT_VERSION を 6.0 に。 - プロセス実行の並行 drain で captured var を変異していた 3 箇所(ProcessRunner / GitRunner / GitHubEngine.run)を、ロック付き Sendable な DataBox 経由に統一して #SendableClosureCaptures 警告を解消。 - エンジン/ストア: 警告0・swift test 29 passed。アプリ: concurrency 警告0 (既存の NSSplitViewDelegate シグネチャ警告のみ・本移行とは無関係)。 TCA 化(UI 層のリライト)は #16 の後段として継続。
sasagar
added a commit
that referenced
this pull request
Jul 2, 2026
#16 の前段。CLAUDE.md の「落ち着いたら .v6 へ」に沿って strict concurrency へ。 - Package の全ターゲットを .swiftLanguageMode(.v6) に。 - アプリの SWIFT_VERSION を 6.0 に。 - プロセス実行の並行 drain で captured var を変異していた 3 箇所(ProcessRunner / GitRunner / GitHubEngine.run)を、ロック付き Sendable な DataBox 経由に統一して #SendableClosureCaptures 警告を解消。 - エンジン/ストア: 警告0・swift test 29 passed。アプリ: concurrency 警告0 (既存の NSSplitViewDelegate シグネチャ警告のみ・本移行とは無関係)。 TCA 化(UI 層のリライト)は #16 の後段として継続。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
#16「TCA 導入 / Swift 6 言語モードへ移行」のうち、まず Swift 6 移行を実施。CLAUDE.md の方針「現状は spike として Swift 5 言語モード…落ち着いたら
.v6へ」に沿う。移行は 2 パートに分かれるので、低リスクで検証可能な言語モード移行を先行させ、TCA 化(UI 層リライト)は #16 の後段として継続する。変更点
Package.swift: 全ターゲット(engine / store / 各 test)を.swiftLanguageMode(.v6)に。app/project.yml:SWIFT_VERSIONを6.0に。varを変異していた 3 箇所(ProcessRunner/GitRunner/GitHubEngine.run)を、ロック付きSendableなDataBox経由に統一し#SendableClosureCaptures警告を解消(happens-before はロックで保証)。CLAUDE.mdの方針メモを Swift 6 済みに更新。検証
swift build警告 0 /swift test29 passed。xcodebuild … clean build成功。concurrency 警告 0。NSSplitViewDelegateシグネチャ警告 3 件(PaneTiling.swift)のみ残存。これは言語モードに依存しない既存の警告で本移行とは無関係(別途対応)。補足
@MainActor @Observableで書かれており、strict concurrency でも追加修正ゼロで通った。.xcodeprojは生成物(git 管理外)。コミットに含むのはproject.ymlの 1 行のみ。