Build Information
Failed to build scg, reference 0.7.0 (38df68), with Swift 6.4 for watchOS using Xcode 27.0 on 23 Sep 2026 19:50:53 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme scg -destination generic/platform=watchOSBuild Log
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:70:33: error: 'buildBlock' is only available in watchOS 27.0 or newer
27 | /// This is used in the first pass of two-pass analysis to get a high-level
28 | /// understanding of large changesets before detailed batch processing.
29 | struct OverviewPromptBuilder {
| `- note: add '@available' attribute to enclosing struct
30 | /// Creates a metadata-only prompt for overview generation.
31 | func makePrompt(summary: ChangeSummary, metadata: PromptMetadata) -> PromptPackage {
:
58 | }
59 |
60 | private func buildUserPrompt(summary: ChangeSummary, metadata: PromptMetadata) -> Prompt {
| `- note: add '@available' attribute to enclosing instance method
61 | Prompt {
62 | "Repository: \(metadata.repositoryName)"
:
68 | "File changes (metadata only):"
69 |
70 | for file in summary.files {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
71 | fileMetadataLine(for: file)
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:72:7: error: 'buildArray' is only available in watchOS 27.0 or newer
27 | /// This is used in the first pass of two-pass analysis to get a high-level
28 | /// understanding of large changesets before detailed batch processing.
29 | struct OverviewPromptBuilder {
| `- note: add '@available' attribute to enclosing struct
30 | /// Creates a metadata-only prompt for overview generation.
31 | func makePrompt(summary: ChangeSummary, metadata: PromptMetadata) -> PromptPackage {
:
58 | }
59 |
60 | private func buildUserPrompt(summary: ChangeSummary, metadata: PromptMetadata) -> Prompt {
| `- note: add '@available' attribute to enclosing instance method
61 | Prompt {
62 | "Repository: \(metadata.repositoryName)"
:
70 | for file in summary.files {
71 | fileMetadataLine(for: file)
72 | }
| |- error: 'buildArray' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
73 |
74 | ""
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:74:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
72 | }
73 |
74 | ""
| `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
75 | "Based on this metadata, provide a high-level overview of what this changeset accomplishes."
76 | "Identify the most important files that are central to understanding the changes."
FoundationModels.PromptBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:75:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
73 |
74 | ""
75 | "Based on this metadata, provide a high-level overview of what this changeset accomplishes."
| `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
76 | "Identify the most important files that are central to understanding the changes."
77 | }
FoundationModels.PromptBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:76:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
74 | ""
75 | "Based on this metadata, provide a high-level overview of what this changeset accomplishes."
76 | "Identify the most important files that are central to understanding the changes."
| `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
77 | }
78 | }
FoundationModels.PromptBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:61:12: error: 'buildBlock' is only available in watchOS 27.0 or newer
27 | /// This is used in the first pass of two-pass analysis to get a high-level
28 | /// understanding of large changesets before detailed batch processing.
29 | struct OverviewPromptBuilder {
| `- note: add '@available' attribute to enclosing struct
30 | /// Creates a metadata-only prompt for overview generation.
31 | func makePrompt(summary: ChangeSummary, metadata: PromptMetadata) -> PromptPackage {
:
58 | }
59 |
60 | private func buildUserPrompt(summary: ChangeSummary, metadata: PromptMetadata) -> Prompt {
| `- note: add '@available' attribute to enclosing instance method
61 | Prompt {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
62 | "Repository: \(metadata.repositoryName)"
63 | "Branch: \(metadata.branchName)"
macro expansion @Generable:3:36: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:2: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension ChangesetOverview: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.summary = try content.value(forProperty: "summary")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|4 | self.category = try content.value(forProperty: "category")
|5 | self.keyFiles = try content.value(forProperty: "keyFiles")
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:4:37: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:2: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension ChangesetOverview: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.summary = try content.value(forProperty: "summary")
|4 | self.category = try content.value(forProperty: "category")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|5 | self.keyFiles = try content.value(forProperty: "keyFiles")
|6 | }
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:5:37: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:2: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension ChangesetOverview: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.summary = try content.value(forProperty: "summary")
|4 | self.category = try content.value(forProperty: "category")
|5 | self.keyFiles = try content.value(forProperty: "keyFiles")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|6 | }
|7 | }
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:19:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
21 | )
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile OverviewPromptBuilder.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBatchPlanner.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PromptBatchPlanner.swift
SwiftCompile normal arm64_32 Compiling\ CommitGenError.swift,\ ConsoleTheme.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/CommitGenError.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/ConsoleTheme.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/CommitGenError.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CommitGenError.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/ConsoleTheme.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ConsoleTheme.swift
SwiftCompile normal arm64_32 Compiling\ LLMClient.swift,\ Logger.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Logger.swift (in target 'scg-product' from project 'scg')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:5:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:7:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
8 | var summary: String
9 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:10:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
9 |
10 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
11 | description: "Category: feature, bugfix, refactor, test, docs, or chore."
12 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:15:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
:
13 | var category: String
14 |
15 | @Guide(description: "1-5 most important file paths for understanding the change.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | var keyFiles: [String]
17 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:19:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
21 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:24:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
22 | var subject: String
23 |
24 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
25 | description: "Optional body explaining WHY the change was made. Omit if subject is clear enough."
26 | )
macro expansion @Generable:1:59: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | | `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:12:35: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:34:13: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
| | `- error: 'GenerationID' is only available in watchOS 27.0 or newer
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:35:25: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:36:23: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
|38 | self.id = content.id ?? GenerationID()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:37:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
|39 | self.subject = try content.value(forProperty: "subject")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:33:20: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
| `- note: 'GenerationID' declared here
4 | public static func == (a: GenerationID, b: GenerationID) -> Bool
5 | public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:104:34: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
102 | }
103 |
104 | private let generationOptions: GenerationOptions
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:106:46: error: 'SystemLanguageModel' is unavailable in watchOS
104 | private let generationOptions: GenerationOptions
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
| `- error: 'SystemLanguageModel' is unavailable in watchOS
107 |
108 | init(
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:24: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:46: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
107 |
108 | init(
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
110 | sampling: nil,
111 | temperature: 0.4,
FoundationModels.GenerationOptions.init:6:10: note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
4 | @available(tvOS, unavailable)
5 | @available(watchOS, unavailable)
6 | public init(sampling: GenerationOptions.SamplingMode?, temperature: Double? = nil, maximumResponseTokens: Int? = nil)}
| `- note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
7 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:70: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:90: error: 'default' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'default' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel.default:5:20: note: 'default' has been explicitly marked unavailable here
3 | @available(tvOS, unavailable)
4 | @available(watchOS, unavailable)
5 | public class var `default`: SystemLanguageModel { get }}
| `- note: 'default' has been explicitly marked unavailable here
6 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:268:56: error: 'SystemLanguageModel' is unavailable in watchOS
266 | }
267 |
268 | private func availabilityDescription(_ availability: SystemLanguageModel.Availability) -> String {
| `- error: 'SystemLanguageModel' is unavailable in watchOS
269 | switch availability {
270 | case .available:
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:287:44: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
284 | }
285 |
286 | private static func analyzeTranscriptEntries(
| `- note: add '@available' attribute to enclosing static method
287 | _ entries: ArraySlice<FoundationModels.Transcript.Entry>
| `- error: 'Transcript' is only available in watchOS 27.0 or newer
288 | ) -> (promptTokens: Int?, outputTokens: Int?) {
289 | var instructionSegments: [String] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:334:69: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
332 | }
333 |
334 | private static func textSegments(from segments: [FoundationModels.Transcript.Segment]) -> [String] {
| | `- error: 'Transcript' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing static method
335 | segments.compactMap { segment in
336 | switch segment {
macro expansion @Generable:2:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:2: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension CommitDraft: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.subject = try content.value(forProperty: "subject")
|4 | self.body = try content.value(forProperty: "body")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:2:22: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| | |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 3 | type: Self.self,
| 4 | description: "A git commit message with subject and optional body.",
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:2:22: error: 'init(type:description:properties:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| | |- error: 'init(type:description:properties:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 3 | type: Self.self,
| 4 | description: "A git commit message with subject and optional body.",
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:6:30: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
| 4 | description: "A git commit message with subject and optional body.",
| 5 | properties: [
| 6 | FoundationModels.GenerationSchema.Property(name: "subject", description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed.", type: String.self),
| | |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 7 | FoundationModels.GenerationSchema.Property(name: "body", description: "Optional body explaining WHY the change was made. Omit if subject is clear enough.", type: String?.self)
| 8 | ]
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:6:47: error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
| 4 | description: "A git commit message with subject and optional body.",
| 5 | properties: [
| 6 | FoundationModels.GenerationSchema.Property(name: "subject", description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed.", type: String.self),
| | |- error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 7 | FoundationModels.GenerationSchema.Property(name: "body", description: "Optional body explaining WHY the change was made. Omit if subject is clear enough.", type: String?.self)
| 8 | ]
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:7:30: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
| :
| 5 | properties: [
| 6 | FoundationModels.GenerationSchema.Property(name: "subject", description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed.", type: String.self),
| 7 | FoundationModels.GenerationSchema.Property(name: "body", description: "Optional body explaining WHY the change was made. Omit if subject is clear enough.", type: String?.self)
| | |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 8 | ]
| 9 | )
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:7:47: error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
| :
| 5 | properties: [
| 6 | FoundationModels.GenerationSchema.Property(name: "subject", description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed.", type: String.self),
| 7 | FoundationModels.GenerationSchema.Property(name: "body", description: "Optional body explaining WHY the change was made. Omit if subject is clear enough.", type: String?.self)
| | |- error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| 8 | ]
| 9 | )
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:14:49: error: 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| | |- error: 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|15 | addProperty(name: "subject", value: self.subject)
|16 | addProperty(name: "body", value: self.body)
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:15:5: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
|15 | addProperty(name: "subject", value: self.subject)
| | |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|16 | addProperty(name: "body", value: self.body)
|17 | return GeneratedContent(
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:16:5: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
|15 | addProperty(name: "subject", value: self.subject)
|16 | addProperty(name: "body", value: self.body)
| | |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|17 | return GeneratedContent(
|18 | properties: properties,
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:17:12: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
|15 | addProperty(name: "subject", value: self.subject)
|16 | addProperty(name: "body", value: self.body)
|17 | return GeneratedContent(
| | |- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|18 | properties: properties,
|19 | uniquingKeysWith: { _, second in
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:17:12: error: 'init(properties:id:uniquingKeysWith:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
|15 | addProperty(name: "subject", value: self.subject)
|16 | addProperty(name: "body", value: self.body)
|17 | return GeneratedContent(
| | |- error: 'init(properties:id:uniquingKeysWith:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|18 | properties: properties,
|19 | uniquingKeysWith: { _, second in
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:23:48: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| :
|21 | }
|22 | )
|23 | func addProperty(name: String, value: some Generable) {
| | `- error: 'Generable' is only available in watchOS 27.0 or newer
|24 | properties.append((name: name, value: value))
|25 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:23:48: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| :
|21 | }
|22 | )
|23 | func addProperty(name: String, value: some Generable) {
| | `- error: 'Generable' is only available in watchOS 27.0 or newer
|24 | properties.append((name: name, value: value))
|25 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:26:49: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| :
|24 | properties.append((name: name, value: value))
|25 | }
|26 | func addProperty(name: String, value: (some Generable)?) {
| | `- error: 'Generable' is only available in watchOS 27.0 or newer
|27 | if explicitNil || value != nil {
|28 | properties.append((name: name, value: value))
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:26:49: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| :
|24 | properties.append((name: name, value: value))
|25 | }
|26 | func addProperty(name: String, value: (some Generable)?) {
| | `- error: 'Generable' is only available in watchOS 27.0 or newer
|27 | if explicitNil || value != nil {
|28 | properties.append((name: name, value: value))
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:28:47: error: conformance of 'Optional<Wrapped>' to 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
| :
|26 | func addProperty(name: String, value: (some Generable)?) {
|27 | if explicitNil || value != nil {
|28 | properties.append((name: name, value: value))
| | |- error: conformance of 'Optional<Wrapped>' to 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|29 | }
|30 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:38:33: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
| | |- error: 'GenerationID' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|39 | self.subject = try content.value(forProperty: "subject")
|40 | self.body = try content.value(forProperty: "body")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:38:33: error: 'init()' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
| | |- error: 'init()' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|39 | self.subject = try content.value(forProperty: "subject")
|40 | self.body = try content.value(forProperty: "body")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:39:36: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
|39 | self.subject = try content.value(forProperty: "subject")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|40 | self.body = try content.value(forProperty: "body")
|41 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:40:33: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
|39 | self.subject = try content.value(forProperty: "subject")
|40 | self.body = try content.value(forProperty: "body")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|41 | }
|42 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:125:35: error: 'availability' is unavailable in watchOS
123 | let model = modelProvider()
124 |
125 | guard case .available = model.availability else {
| `- error: 'availability' is unavailable in watchOS
126 | let reason = availabilityDescription(model.availability)
127 | throw CommitGenError.modelUnavailable(reason: reason)
FoundationModels.SystemLanguageModel.availability:2:18: note: 'availability' has been explicitly marked unavailable here
1 | class SystemLanguageModel {
2 | final public var availability: SystemLanguageModel.Availability { get }}
| `- note: 'availability' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:126:50: error: 'availability' is unavailable in watchOS
124 |
125 | guard case .available = model.availability else {
126 | let reason = availabilityDescription(model.availability)
| `- error: 'availability' is unavailable in watchOS
127 | throw CommitGenError.modelUnavailable(reason: reason)
128 | }
FoundationModels.SystemLanguageModel.availability:2:18: note: 'availability' has been explicitly marked unavailable here
1 | class SystemLanguageModel {
2 | final public var availability: SystemLanguageModel.Availability { get }}
| `- note: 'availability' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:144:25: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
120 | }
121 |
122 | func generateCommitDraft(from prompt: PromptPackage) async throws -> LLMGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
123 | let model = modelProvider()
124 |
:
142 | do {
143 | let responseData = try await withTimeout(seconds: attemptTimeout) {
144 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
| |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
145 | let response = try await session.respond(
146 | generating: CommitDraft.self,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:144:25: error: 'init(model:tools:instructions:)' is unavailable in watchOS
142 | do {
143 | let responseData = try await withTimeout(seconds: attemptTimeout) {
144 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
| `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
145 | let response = try await session.respond(
146 | generating: CommitDraft.self,
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
| `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:145:44: error: 'respond(generating:includeSchemaInPrompt:options:prompt:)' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
120 | }
121 |
122 | func generateCommitDraft(from prompt: PromptPackage) async throws -> LLMGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
123 | let model = modelProvider()
124 |
:
143 | let responseData = try await withTimeout(seconds: attemptTimeout) {
144 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
145 | let response = try await session.respond(
| |- error: 'respond(generating:includeSchemaInPrompt:options:prompt:)' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
146 | generating: CommitDraft.self,
147 | options: options
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:149:13: error: 'buildExpression' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
120 | }
121 |
122 | func generateCommitDraft(from prompt: PromptPackage) async throws -> LLMGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
123 | let model = modelProvider()
124 |
:
147 | options: options
148 | ) {
149 | userPrompt
| |- error: 'buildExpression' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
150 | }
151 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:148:13: error: 'buildBlock' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
120 | }
121 |
122 | func generateCommitDraft(from prompt: PromptPackage) async throws -> LLMGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
123 | let model = modelProvider()
124 |
:
146 | generating: CommitDraft.self,
147 | options: options
148 | ) {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
149 | userPrompt
150 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:198:35: error: 'availability' is unavailable in watchOS
196 | let model = modelProvider()
197 |
198 | guard case .available = model.availability else {
| `- error: 'availability' is unavailable in watchOS
199 | let reason = availabilityDescription(model.availability)
200 | throw CommitGenError.modelUnavailable(reason: reason)
FoundationModels.SystemLanguageModel.availability:2:18: note: 'availability' has been explicitly marked unavailable here
1 | class SystemLanguageModel {
2 | final public var availability: SystemLanguageModel.Availability { get }}
| `- note: 'availability' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:199:50: error: 'availability' is unavailable in watchOS
197 |
198 | guard case .available = model.availability else {
199 | let reason = availabilityDescription(model.availability)
| `- error: 'availability' is unavailable in watchOS
200 | throw CommitGenError.modelUnavailable(reason: reason)
201 | }
FoundationModels.SystemLanguageModel.availability:2:18: note: 'availability' has been explicitly marked unavailable here
1 | class SystemLanguageModel {
2 | final public var availability: SystemLanguageModel.Availability { get }}
| `- note: 'availability' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:217:25: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
193 | }
194 |
195 | func generateOverview(from prompt: PromptPackage) async throws -> OverviewGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
196 | let model = modelProvider()
197 |
:
215 | do {
216 | let responseData = try await withTimeout(seconds: attemptTimeout) {
217 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
| |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
218 | let response = try await session.respond(
219 | generating: ChangesetOverview.self,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:217:25: error: 'init(model:tools:instructions:)' is unavailable in watchOS
215 | do {
216 | let responseData = try await withTimeout(seconds: attemptTimeout) {
217 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
| `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
218 | let response = try await session.respond(
219 | generating: ChangesetOverview.self,
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
| `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:218:44: error: 'respond(generating:includeSchemaInPrompt:options:prompt:)' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
193 | }
194 |
195 | func generateOverview(from prompt: PromptPackage) async throws -> OverviewGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
196 | let model = modelProvider()
197 |
:
216 | let responseData = try await withTimeout(seconds: attemptTimeout) {
217 | let session = LanguageModelSession(model: model, instructions: systemPrompt)
218 | let response = try await session.respond(
| |- error: 'respond(generating:includeSchemaInPrompt:options:prompt:)' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
219 | generating: ChangesetOverview.self,
220 | options: options
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:222:13: error: 'buildExpression' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
193 | }
194 |
195 | func generateOverview(from prompt: PromptPackage) async throws -> OverviewGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
196 | let model = modelProvider()
197 |
:
220 | options: options
221 | ) {
222 | userPrompt
| |- error: 'buildExpression' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
223 | }
224 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:221:13: error: 'buildBlock' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
193 | }
194 |
195 | func generateOverview(from prompt: PromptPackage) async throws -> OverviewGenerationResult {
| `- note: add '@available' attribute to enclosing instance method
196 | let model = modelProvider()
197 |
:
219 | generating: ChangesetOverview.self,
220 | options: options
221 | ) {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
222 | userPrompt
223 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:336:7: warning: switch must be exhaustive
334 | private static func textSegments(from segments: [FoundationModels.Transcript.Segment]) -> [String] {
335 | segments.compactMap { segment in
336 | switch segment {
| |- warning: switch must be exhaustive
| `- note: add missing case: '.attachment(_)'
337 | case .text(let text):
338 | text.content
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:340:28: error: 'jsonString' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
332 | }
333 |
334 | private static func textSegments(from segments: [FoundationModels.Transcript.Segment]) -> [String] {
| `- note: add '@available' attribute to enclosing static method
335 | segments.compactMap { segment in
336 | switch segment {
:
338 | text.content
339 | case .structure(let structured):
340 | structured.content.jsonString
| |- error: 'jsonString' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
341 | @unknown default:
342 | nil
macro expansion @Generable:3:36: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:2: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension CommitDraft: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.subject = try content.value(forProperty: "subject")
| | |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
|4 | self.body = try content.value(forProperty: "body")
|5 | }
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile LLMClient.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Logger.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Logger.swift
SwiftCompile normal arm64_32 Compiling\ DiffSummarizer.swift,\ FileImportanceScorer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/FileImportanceScorer.swift (in target 'scg-product' from project 'scg')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:54:31: error: 'Prompt' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:202:29: error: 'Prompt' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
204 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:55:7: error: 'buildExpression' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
| |- error: 'buildExpression' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
56 | for line in promptLines() {
57 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:55:7: error: 'Prompt' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
| |- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
56 | for line in promptLines() {
57 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:55:7: error: 'init(_:)' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
| |- error: 'init(_:)' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
56 | for line in promptLines() {
57 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:57:11: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
55 | Prompt {
56 | for line in promptLines() {
57 | line
| `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
58 | }
59 | }
FoundationModels.PromptBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:56:35: error: 'buildBlock' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
57 | line
58 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:58:9: error: 'buildArray' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
57 | line
58 | }
| |- error: 'buildArray' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:55:14: error: 'buildBlock' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
56 | for line in promptLines() {
57 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:54:38: error: 'buildBlock' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| | |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| | `- note: add 'if #available' version check
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:203:5: error: 'buildExpression' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
| |- error: 'buildExpression' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
204 | for line in promptLines() {
205 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:203:5: error: 'Prompt' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
| |- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
204 | for line in promptLines() {
205 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:203:5: error: 'init(_:)' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
| |- error: 'init(_:)' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
204 | for line in promptLines() {
205 | line
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:205:9: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
203 | Prompt {
204 | for line in promptLines() {
205 | line
| `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
206 | }
207 | }
FoundationModels.PromptBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct PromptBuilder {
2 | @available(*, unavailable, message: "Only `Prompt` and `PromptRepresentable` are supported.")
3 | @export(implementation) public static func buildExpression<T>(_ expression: T) -> Prompt}
| `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:204:33: error: 'buildBlock' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
204 | for line in promptLines() {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
205 | line
206 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:206:7: error: 'buildArray' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
204 | for line in promptLines() {
205 | line
206 | }
| |- error: 'buildArray' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
207 | }
208 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:203:12: error: 'buildBlock' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
| |- error: 'buildBlock' is only available in watchOS 27.0 or newer
| `- note: add 'if #available' version check
204 | for line in promptLines() {
205 | line
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile DiffSummarizer.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/FileImportanceScorer.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile FileImportanceScorer.swift
SwiftCompile normal arm64_32 Compiling\ ConfigCommand.swift,\ BatchCombinationPromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/ConfigCommand.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/BatchCombinationPromptBuilder.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/ConfigCommand.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ConfigCommand.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/BatchCombinationPromptBuilder.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile BatchCombinationPromptBuilder.swift
SwiftEmitModule normal arm64_32 Emitting\ module\ for\ SwiftCommitGen (in target 'scg-product' from project 'scg')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/CommitGenOptions.swift:27:31: error: 'Prompt' is only available in watchOS 27.0 or newer
22 |
23 | /// Available prompt styles that influence how instructions are sent to the model.
24 | enum PromptStyle: String, PromptRepresentable, Codable {
| `- note: add '@available' attribute to enclosing enum
25 | case detailed
26 |
27 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
28 | Prompt { styleGuidance }
29 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
107 |
108 | init(
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
110 | sampling: nil,
111 | temperature: 0.4,
FoundationModels.GenerationOptions.init:6:10: note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
4 | @available(tvOS, unavailable)
5 | @available(watchOS, unavailable)
6 | public init(sampling: GenerationOptions.SamplingMode?, temperature: Double? = nil, maximumResponseTokens: Int? = nil)}
| `- note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
7 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:70: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:90: error: 'default' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'default' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel.default:5:20: note: 'default' has been explicitly marked unavailable here
3 | @available(tvOS, unavailable)
4 | @available(watchOS, unavailable)
5 | public class var `default`: SystemLanguageModel { get }}
| `- note: 'default' has been explicitly marked unavailable here
6 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:19:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
21 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:24:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
22 | var subject: String
23 |
24 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
25 | description: "Optional body explaining WHY the change was made. Omit if subject is clear enough."
26 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:54:31: error: 'Prompt' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:202:29: error: 'Prompt' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
204 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:5:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:7:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
8 | var summary: String
9 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:10:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
9 |
10 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
11 | description: "Category: feature, bugfix, refactor, test, docs, or chore."
12 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:15:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
:
13 | var category: String
14 |
15 | @Guide(description: "1-5 most important file paths for understanding the change.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | var keyFiles: [String]
17 |
macro expansion @Generable:1:59: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | | `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:12:35: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:34:13: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
| | `- error: 'GenerationID' is only available in watchOS 27.0 or newer
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:35:25: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:36:23: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
|38 | self.id = content.id ?? GenerationID()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:37:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
|39 | self.subject = try content.value(forProperty: "subject")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:33:20: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
| `- note: 'GenerationID' declared here
4 | public static func == (a: GenerationID, b: GenerationID) -> Bool
5 | public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:104:34: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
102 | }
103 |
104 | private let generationOptions: GenerationOptions
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:106:46: error: 'SystemLanguageModel' is unavailable in watchOS
104 | private let generationOptions: GenerationOptions
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
| `- error: 'SystemLanguageModel' is unavailable in watchOS
107 |
108 | init(
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:24: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:46: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:268:56: error: 'SystemLanguageModel' is unavailable in watchOS
266 | }
267 |
268 | private func availabilityDescription(_ availability: SystemLanguageModel.Availability) -> String {
| `- error: 'SystemLanguageModel' is unavailable in watchOS
269 | switch availability {
270 | case .available:
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:287:44: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
284 | }
285 |
286 | private static func analyzeTranscriptEntries(
| `- note: add '@available' attribute to enclosing static method
287 | _ entries: ArraySlice<FoundationModels.Transcript.Entry>
| `- error: 'Transcript' is only available in watchOS 27.0 or newer
288 | ) -> (promptTokens: Int?, outputTokens: Int?) {
289 | var instructionSegments: [String] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:334:69: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
332 | }
333 |
334 | private static func textSegments(from segments: [FoundationModels.Transcript.Segment]) -> [String] {
| | `- error: 'Transcript' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing static method
335 | segments.compactMap { segment in
336 | switch segment {
macro expansion @Generable:2:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:2: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension CommitDraft: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.subject = try content.value(forProperty: "subject")
|4 | self.body = try content.value(forProperty: "body")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:1:59: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | | `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:13:35: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|11 | }
|12 |
|13 | nonisolated var generatedContent: GeneratedContent {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing property
|14 | let explicitNil = false
|15 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:36:13: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|36 | var id: GenerationID
| | `- error: 'GenerationID' is only available in watchOS 27.0 or newer
|37 | var summary: String.PartiallyGenerated?
|38 | var category: String.PartiallyGenerated?
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:37:25: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|36 | var id: GenerationID
|37 | var summary: String.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|38 | var category: String.PartiallyGenerated?
|39 | var keyFiles: [String].PartiallyGenerated?
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:38:26: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|36 | var id: GenerationID
|37 | var summary: String.PartiallyGenerated?
|38 | var category: String.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|39 | var keyFiles: [String].PartiallyGenerated?
|40 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
SwiftCompile normal arm64_32 (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
macro expansion @Generable:39:28: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|36 | var id: GenerationID
|37 | var summary: String.PartiallyGenerated?
|38 | var category: String.PartiallyGenerated?
|39 | var keyFiles: [String].PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|40 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
|41 | self.id = content.id ?? GenerationID()
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:40:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| |- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|36 | var id: GenerationID
|37 | var summary: String.PartiallyGenerated?
|38 | var category: String.PartiallyGenerated?
|39 | var keyFiles: [String].PartiallyGenerated?
|40 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|41 | self.id = content.id ?? GenerationID()
|42 | self.summary = try content.value(forProperty: "summary")
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:35:20: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:23:1: note: expanded code originates here
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| `- note: in expansion of macro 'Generable' on struct 'ChangesetOverview' here
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
:
21 | self.keyFiles = keyFiles
22 | }
23 | }
+--- macro expansion @Generable ------------------------------------
|33 | }
|34 |
|35 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
|36 | var id: GenerationID
|37 | var summary: String.PartiallyGenerated?
+-------------------------------------------------------------------
24 |
25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
| `- note: 'GenerationID' declared here
4 | public static func == (a: GenerationID, b: GenerationID) -> Bool
5 | public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:5:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:43:39: error: 'Instructions' is only available in watchOS 27.0 or newer
27 | /// This is used in the first pass of two-pass analysis to get a high-level
28 | /// understanding of large changesets before detailed batch processing.
29 | struct OverviewPromptBuilder {
| `- note: add '@available' attribute to enclosing struct
30 | /// Creates a metadata-only prompt for overview generation.
31 | func makePrompt(summary: ChangeSummary, metadata: PromptMetadata) -> PromptPackage {
:
41 | }
42 |
43 | private func buildSystemPrompt() -> Instructions {
| | `- error: 'Instructions' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | Instructions {
45 | """
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:60:85: error: 'Prompt' is only available in watchOS 27.0 or newer
27 | /// This is used in the first pass of two-pass analysis to get a high-level
28 | /// understanding of large changesets before detailed batch processing.
29 | struct OverviewPromptBuilder {
| `- note: add '@available' attribute to enclosing struct
30 | /// Creates a metadata-only prompt for overview generation.
31 | func makePrompt(summary: ChangeSummary, metadata: PromptMetadata) -> PromptPackage {
:
58 | }
59 |
60 | private func buildUserPrompt(summary: ChangeSummary, metadata: PromptMetadata) -> Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing instance method
61 | Prompt {
62 | "Repository: \(metadata.repositoryName)"
SwiftEmitModule normal arm64 Emitting\ module\ for\ SwiftCommitGen (in target 'scg-product' from project 'scg')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/CommitGenOptions.swift:27:31: error: 'Prompt' is only available in watchOS 27.0 or newer
22 |
23 | /// Available prompt styles that influence how instructions are sent to the model.
24 | enum PromptStyle: String, PromptRepresentable, Codable {
| `- note: add '@available' attribute to enclosing enum
25 | case detailed
26 |
27 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
28 | Prompt { styleGuidance }
29 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:44: error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
107 |
108 | init(
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'init(sampling:temperature:maximumResponseTokens:)' is unavailable in watchOS
110 | sampling: nil,
111 | temperature: 0.4,
FoundationModels.GenerationOptions.init:6:10: note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
4 | @available(tvOS, unavailable)
5 | @available(watchOS, unavailable)
6 | public init(sampling: GenerationOptions.SamplingMode?, temperature: Double? = nil, maximumResponseTokens: Int? = nil)}
| `- note: 'init(sampling:temperature:maximumResponseTokens:)' has been explicitly marked unavailable here
7 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:70: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:90: error: 'default' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'default' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel.default:5:20: note: 'default' has been explicitly marked unavailable here
3 | @available(tvOS, unavailable)
4 | @available(watchOS, unavailable)
5 | public class var `default`: SystemLanguageModel { get }}
| `- note: 'default' has been explicitly marked unavailable here
6 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:19:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
21 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:24:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | @Generable(description: "A git commit message with subject and optional body.")
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
22 | var subject: String
23 |
24 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
25 | description: "Optional body explaining WHY the change was made. Omit if subject is clear enough."
26 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:54:31: error: 'Prompt' is only available in watchOS 27.0 or newer
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
8 | enum SnippetMode: String, Codable {
9 | case compact
:
52 | }
53 |
54 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
55 | Prompt {
56 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift:202:29: error: 'Prompt' is only available in watchOS 27.0 or newer
3 |
4 | /// Represents the staged changes that will be summarized for prompt construction.
5 | struct ChangeSummary: Hashable, Codable, PromptRepresentable {
| `- note: add '@available' attribute to enclosing struct
6 | /// Describes how a single file contributes to the change summary and prompt content.
7 | struct FileSummary: Hashable, Codable, PromptRepresentable {
:
200 | }
201 |
202 | var promptRepresentation: Prompt {
| | `- error: 'Prompt' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
203 | Prompt {
204 | for line in promptLines() {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:5:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
3 |
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:7:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
8 | var summary: String
9 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:10:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
9 |
10 | @Guide(
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
11 | description: "Category: feature, bugfix, refactor, test, docs, or chore."
12 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:15:4: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
4 | /// LLM output structure for the overview pass.
5 | @Generable(description: "High-level overview of a large changeset.")
6 | struct ChangesetOverview: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
7 | @Guide(description: "2-3 sentence summary of the overall purpose of the changes.")
8 | var summary: String
:
13 | var category: String
14 |
15 | @Guide(description: "1-5 most important file paths for understanding the change.")
| `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 | var keyFiles: [String]
17 |
macro expansion @Generable:1:59: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
| 1 | nonisolated static var generationSchema: FoundationModels.GenerationSchema {
| | | `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing static property
| 2 | FoundationModels.GenerationSchema(
| 3 | type: Self.self,
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:12:35: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|10 | }
|11 |
|12 | nonisolated var generatedContent: GeneratedContent {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing property
|13 | let explicitNil = false
|14 | var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:34:13: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
| | `- error: 'GenerationID' is only available in watchOS 27.0 or newer
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:35:25: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:36:23: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
| | `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
|38 | self.id = content.id ?? GenerationID()
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:37:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- note: add '@available' attribute to enclosing struct
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
|36 | var body: String?.PartiallyGenerated?
|37 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|38 | self.id = content.id ?? GenerationID()
|39 | self.subject = try content.value(forProperty: "subject")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
macro expansion @Generable:33:20: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:1: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|31 | }
|32 |
|33 | nonisolated struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent, Hashable {
| | `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 9.0 and newer; this will be an error in a future Swift language mode
|34 | var id: GenerationID
|35 | var subject: String.PartiallyGenerated?
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
| `- note: 'GenerationID' declared here
4 | public static func == (a: GenerationID, b: GenerationID) -> Bool
5 | public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:16:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
| `- note: add '@available' attribute to enclosing struct
19 | @Guide(
20 | description: "Subject line (max 50 chars). Imperative mood: 'Add X' not 'Added X'. Describe WHAT changed."
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:104:34: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
102 | }
103 |
104 | private let generationOptions: GenerationOptions
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:106:46: error: 'SystemLanguageModel' is unavailable in watchOS
104 | private let generationOptions: GenerationOptions
105 | private let configuration: Configuration
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
| `- error: 'SystemLanguageModel' is unavailable in watchOS
107 |
108 | init(
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:109:24: error: 'GenerationOptions' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
106 | private let modelProvider: @Sendable () -> SystemLanguageModel
107 |
108 | init(
| `- note: add '@available' attribute to enclosing initializer
109 | generationOptions: GenerationOptions = GenerationOptions(
| `- error: 'GenerationOptions' is only available in watchOS 27.0 or newer
110 | sampling: nil,
111 | temperature: 0.4,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:115:46: error: 'SystemLanguageModel' is unavailable in watchOS
113 | ),
114 | configuration: Configuration = Configuration(),
115 | modelProvider: @escaping @Sendable () -> SystemLanguageModel = { SystemLanguageModel.default }
| `- error: 'SystemLanguageModel' is unavailable in watchOS
116 | ) {
117 | self.generationOptions = generationOptions
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:268:56: error: 'SystemLanguageModel' is unavailable in watchOS
266 | }
267 |
268 | private func availabilityDescription(_ availability: SystemLanguageModel.Availability) -> String {
| `- error: 'SystemLanguageModel' is unavailable in watchOS
269 | switch availability {
270 | case .available:
FoundationModels.SystemLanguageModel:4:20: note: 'SystemLanguageModel' has been explicitly marked unavailable here
2 | @available(tvOS, unavailable)
3 | @available(watchOS, unavailable)
4 | final public class SystemLanguageModel : Sendable {
| `- note: 'SystemLanguageModel' has been explicitly marked unavailable here
5 | @objc deinit
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:287:44: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
284 | }
285 |
286 | private static func analyzeTranscriptEntries(
| `- note: add '@available' attribute to enclosing static method
287 | _ entries: ArraySlice<FoundationModels.Transcript.Entry>
| `- error: 'Transcript' is only available in watchOS 27.0 or newer
288 | ) -> (promptTokens: Int?, outputTokens: Int?) {
289 | var instructionSegments: [String] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:334:69: error: 'Transcript' is only available in watchOS 27.0 or newer
81 |
82 | /// Concrete LLM client backed by Apple's FoundationModels framework.
83 | struct FoundationModelsClient: LLMClient, Sendable {
| `- note: add '@available' attribute to enclosing struct
84 | /// Controls retry behavior and timeouts for generation requests.
85 | struct Configuration: Sendable {
:
332 | }
333 |
334 | private static func textSegments(from segments: [FoundationModels.Transcript.Segment]) -> [String] {
| | `- error: 'Transcript' is only available in watchOS 27.0 or newer
| `- note: add '@available' attribute to enclosing static method
335 | segments.compactMap { segment in
336 | switch segment {
macro expansion @Generable:2:50: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift:74:2: note: expanded code originates here
14 | }
15 |
16 | @Generable(description: "A git commit message with subject and optional body.")
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| |- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
| `- note: in expansion of macro 'Generable' on struct 'CommitDraft' here
17 | /// Model representation for the subject/body pair returned by the language model.
18 | struct CommitDraft: Hashable, Codable, Sendable {
:
72 | return CommitDraft(subject: subject, body: bodyCandidate)
73 | }
74 | }
+--- macro expansion @Generable ------------------------------------
|1 | extension CommitDraft: nonisolated FoundationModels.Generable {
| | `- note: add '@available' attribute to enclosing extension
|2 | nonisolated init(_ content: FoundationModels.GeneratedContent) throws {
| | | `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
| | `- note: add '@available' attribute to enclosing initializer
|3 | self.subject = try content.value(forProperty: "subject")
|4 | self.body = try content.value(forProperty: "body")
+-------------------------------------------------------------------
75 |
76 | /// Wraps a generated draft alongside diagnostics gathered during inference.
SwiftCompile normal arm64 (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftEmitModule normal arm64 Emitting\ module\ for\ ArgumentParser (in target 'ArgumentParser' from project 'swift-argument-parser')
SwiftCompile normal arm64 (in target 'ArgumentParser' from project 'swift-argument-parser')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 Compiling\ OverviewPromptBuilder.swift,\ PromptBatchPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBatchPlanner.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile OverviewPromptBuilder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBatchPlanner.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PromptBatchPlanner.swift
SwiftDriverJobDiscovery normal arm64_32 Compiling CommitGenError.swift, ConsoleTheme.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 Compiling\ SemanticFileGrouper.swift,\ UserConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/SemanticFileGrouper.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/UserConfiguration.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/SemanticFileGrouper.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile SemanticFileGrouper.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/UserConfiguration.swift (in target 'scg-product' from project 'scg')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile UserConfiguration.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-23 15:50:51.470 xcodebuild[1207:7005] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftCompile normal arm64_32 Compiling\ GenerationReport.swift,\ GitClient.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GenerationReport.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GitClient.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GenerationReport.swift (in target 'scg-product' from project 'scg')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GitClient.swift (in target 'scg-product' from project 'scg')
Building workspace scg with scheme scg
(4 failures)
BUILD FAILURE 6.4 watchOS