The Swift Package Index logo.Swift Package Index

Build Information

Failed to build scg, reference main (38df68), with Swift 6.4 for watchOS using Xcode 27.0 on 23 Sep 2026 19:50:08 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=watchOS

Build Log

    |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 |
SwiftCompile normal arm64 /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 /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 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')
/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 |   )
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GenerationReport.swift (in target 'scg-product' from project 'scg')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile GenerationReport.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GitClient.swift (in target 'scg-product' from project 'scg')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile GitClient.swift
SwiftCompile normal arm64 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')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/UserConfiguration.swift:59:30: error: 'homeDirectoryForCurrentUser' is unavailable in watchOS
57 |       baseDirectory = URL(fileURLWithPath: xdgHome, isDirectory: true)
58 |     } else {
59 |       let home = fileManager.homeDirectoryForCurrentUser
   |                              `- error: 'homeDirectoryForCurrentUser' is unavailable in watchOS
60 |       #if os(macOS)
61 |         baseDirectory = home.appendingPathComponent(
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSFileManager.h:1004:35: note: 'homeDirectoryForCurrentUser' has been explicitly marked unavailable here
1002 |
1003 | /// The home directory for the current user.
1004 | @property (readonly, copy) NSURL *homeDirectoryForCurrentUser API_AVAILABLE(macosx(10.12)) API_UNAVAILABLE(ios, watchos, tvos);
     |                                   `- note: 'homeDirectoryForCurrentUser' has been explicitly marked unavailable here
1005 | /// The temporary directory for the current user.
1006 | @property (readonly, copy) NSURL *temporaryDirectory API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/CommitGenOptions.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/CommitGenTool.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/ConfigCommand.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/BatchCombinationPromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/CommitGenError.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/ConsoleTheme.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/DiffSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/FileImportanceScorer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GenerationReport.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/GitClient.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/LLMClient.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Logger.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBatchPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Renderer.swift -primary-file /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/SemanticFileGrouper.swift -primary-file /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/UserConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/GenerateCommand.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/SwiftCommitGen.swift -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.d -emit-const-values-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.swiftconstvalues -emit-reference-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.swiftdeps -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.d -emit-const-values-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.swiftconstvalues -emit-reference-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.swiftdeps -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.dia -target arm64-apple-watchos9.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -swift-module-cross-import Darwin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/usr/include/Darwin.swiftcrossimport/xlocale.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationModelsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationModelsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SwiftCommitGen-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name SwiftCommitGen -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/scg_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-watchos27.0 -target-sdk-version 27.0 -target-sdk-name watchos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.o -debug-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SwiftCommitGen.swiftmodule -index-unit-output-path /scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/SemanticFileGrouper.o -index-unit-output-path /scg.build/Debug-watchos/scg-p.build/Objects-normal/arm64/UserConfiguration.o -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -index-system-modules
SwiftCompile normal arm64 /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 /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
SwiftCompile normal arm64 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 /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 /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 Compiling\ PromptBuilder.swift,\ Renderer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Renderer.swift (in target 'scg-product' from project 'scg')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:26:29: error: 'Prompt' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   var promptRepresentation: Prompt {
    |       |                     `- error: 'Prompt' is only available in watchOS 27.0 or newer
    |       `- note: add '@available' attribute to enclosing property
 27 |     Prompt {
 28 |       "Repository: \(repositoryName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:131:21: error: 'Instructions' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
    |                     `- error: 'Instructions' is only available in watchOS 27.0 or newer
132 |   var userPrompt: Prompt
133 |   var diagnostics: PromptDiagnostics
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:132:19: error: 'Prompt' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
132 |   var userPrompt: Prompt
    |                   `- error: 'Prompt' is only available in watchOS 27.0 or newer
133 |   var diagnostics: PromptDiagnostics
134 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:295:74: error: 'Instructions' is only available in watchOS 27.0 or newer
169 |
170 | /// Default prompt builder that balances snippet detail against token constraints.
171 | struct DefaultPromptBuilder: PromptBuilder {
    |        `- note: add '@available' attribute to enclosing struct
172 |   private let maxFiles: Int
173 |   private let maxSnippetLines: Int
    :
293 |   }
294 |
295 |   private func buildSystemPrompt(style: CommitGenOptions.PromptStyle) -> Instructions {
    |                |                                                         `- error: 'Instructions' is only available in watchOS 27.0 or newer
    |                `- note: add '@available' attribute to enclosing instance method
296 |     Instructions {
297 |       """
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:329:6: error: 'Prompt' is only available in watchOS 27.0 or newer
321 | }
322 |
323 | private func buildUserPrompt(
    |              `- note: add '@available' attribute to enclosing global function
324 |   displaySummary: ChangeSummary,
325 |   fullSummary: ChangeSummary,
    :
327 |   isCompacted: Bool,
328 |   remainder: RemainderContext
329 | ) -> Prompt {
    |      `- error: 'Prompt' is only available in watchOS 27.0 or newer
330 |   Prompt {
331 |     metadata
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:27:5: error: 'buildExpression' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   var promptRepresentation: Prompt {
    |       `- note: add '@available' attribute to enclosing property
 27 |     Prompt {
    |     |- error: 'buildExpression' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:27:5: error: 'Prompt' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   var promptRepresentation: Prompt {
    |       `- note: add '@available' attribute to enclosing property
 27 |     Prompt {
    |     |- error: 'Prompt' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:27:5: error: 'init(_:)' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   var promptRepresentation: Prompt {
    |       `- note: add '@available' attribute to enclosing property
 27 |     Prompt {
    |     |- error: 'init(_:)' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:28:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 26 |   var promptRepresentation: Prompt {
 27 |     Prompt {
 28 |       "Repository: \(repositoryName)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 29 |       "Branch: \(branchName)"
 30 |       "Scope: \(scopeDescription)"
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/PromptBuilder.swift:29:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 27 |     Prompt {
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 30 |       "Scope: \(scopeDescription)"
 31 |       "Style: \(style)"
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/PromptBuilder.swift:30:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
 30 |       "Scope: \(scopeDescription)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 31 |       "Style: \(style)"
 32 |     }
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/PromptBuilder.swift:31:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 29 |       "Branch: \(branchName)"
 30 |       "Scope: \(scopeDescription)"
 31 |       "Style: \(style)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 32 |     }
 33 |   }
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/PromptBuilder.swift:27:12: error: 'buildBlock' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   var promptRepresentation: Prompt {
    |       `- note: add '@available' attribute to enclosing property
 27 |     Prompt {
    |            |- error: 'buildBlock' is only available in watchOS 27.0 or newer
    |            `- note: add 'if #available' version check
 28 |       "Repository: \(repositoryName)"
 29 |       "Branch: \(branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:26:36: error: 'buildBlock' is only available in watchOS 27.0 or newer
  2 |
  3 | /// High-level context that accompanies the diff when constructing model prompts.
  4 | struct PromptMetadata: PromptRepresentable {
    |        `- note: add '@available' attribute to enclosing struct
  5 |   var repositoryName: String
  6 |   var branchName: String
    :
 24 |   }
 25 |
 26 |   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
 27 |     Prompt {
 28 |       "Repository: \(repositoryName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:145:31: error: 'Prompt' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
132 |   var userPrompt: Prompt
133 |   var diagnostics: PromptDiagnostics
134 |
135 |   func appendingUserContext(_ context: String) -> PromptPackage {
    |        `- note: add '@available' attribute to enclosing instance method
136 |     let trimmed = context.trimmingCharacters(in: .whitespacesAndNewlines)
137 |     guard !trimmed.isEmpty else { return self }
    :
143 |     let additionalLines = contextLineCount + 2  // blank separator + heading
144 |
145 |     let augmentedUserPrompt = Prompt {
    |                               |- error: 'Prompt' is only available in watchOS 27.0 or newer
    |                               `- note: add 'if #available' version check
146 |       userPrompt
147 |       ""
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:145:31: error: 'init(_:)' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
132 |   var userPrompt: Prompt
133 |   var diagnostics: PromptDiagnostics
134 |
135 |   func appendingUserContext(_ context: String) -> PromptPackage {
    |        `- note: add '@available' attribute to enclosing instance method
136 |     let trimmed = context.trimmingCharacters(in: .whitespacesAndNewlines)
137 |     guard !trimmed.isEmpty else { return self }
    :
143 |     let additionalLines = contextLineCount + 2  // blank separator + heading
144 |
145 |     let augmentedUserPrompt = Prompt {
    |                               |- error: 'init(_:)' is only available in watchOS 27.0 or newer
    |                               `- note: add 'if #available' version check
146 |       userPrompt
147 |       ""
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:146:7: error: 'buildExpression' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
132 |   var userPrompt: Prompt
133 |   var diagnostics: PromptDiagnostics
134 |
135 |   func appendingUserContext(_ context: String) -> PromptPackage {
    |        `- note: add '@available' attribute to enclosing instance method
136 |     let trimmed = context.trimmingCharacters(in: .whitespacesAndNewlines)
137 |     guard !trimmed.isEmpty else { return self }
    :
144 |
145 |     let augmentedUserPrompt = Prompt {
146 |       userPrompt
    |       |- error: 'buildExpression' is only available in watchOS 27.0 or newer
    |       `- note: add 'if #available' version check
147 |       ""
148 |       "Additional context from user:"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:147:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
145 |     let augmentedUserPrompt = Prompt {
146 |       userPrompt
147 |       ""
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
148 |       "Additional context from user:"
149 |       trimmed
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/PromptBuilder.swift:148:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
146 |       userPrompt
147 |       ""
148 |       "Additional context from user:"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
149 |       trimmed
150 |     }
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/PromptBuilder.swift:149:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
147 |       ""
148 |       "Additional context from user:"
149 |       trimmed
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
150 |     }
151 |
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/PromptBuilder.swift:145:38: error: 'buildBlock' is only available in watchOS 27.0 or newer
128 |
129 | /// Bundles the full prompt payload and derived diagnostics for a generation request.
130 | struct PromptPackage {
    |        `- note: add '@available' attribute to enclosing struct
131 |   var systemPrompt: Instructions
132 |   var userPrompt: Prompt
133 |   var diagnostics: PromptDiagnostics
134 |
135 |   func appendingUserContext(_ context: String) -> PromptPackage {
    |        `- note: add '@available' attribute to enclosing instance method
136 |     let trimmed = context.trimmingCharacters(in: .whitespacesAndNewlines)
137 |     guard !trimmed.isEmpty else { return self }
    :
143 |     let additionalLines = contextLineCount + 2  // blank separator + heading
144 |
145 |     let augmentedUserPrompt = Prompt {
    |                                      |- error: 'buildBlock' is only available in watchOS 27.0 or newer
    |                                      `- note: add 'if #available' version check
146 |       userPrompt
147 |       ""
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:296:5: error: 'Instructions' is only available in watchOS 27.0 or newer
169 |
170 | /// Default prompt builder that balances snippet detail against token constraints.
171 | struct DefaultPromptBuilder: PromptBuilder {
    |        `- note: add '@available' attribute to enclosing struct
172 |   private let maxFiles: Int
173 |   private let maxSnippetLines: Int
    :
293 |   }
294 |
295 |   private func buildSystemPrompt(style: CommitGenOptions.PromptStyle) -> Instructions {
    |                `- note: add '@available' attribute to enclosing instance method
296 |     Instructions {
    |     |- error: 'Instructions' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
297 |       """
298 |       Write a git commit message for the code changes shown.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:296:5: error: 'init(_:)' is only available in watchOS 27.0 or newer
169 |
170 | /// Default prompt builder that balances snippet detail against token constraints.
171 | struct DefaultPromptBuilder: PromptBuilder {
    |        `- note: add '@available' attribute to enclosing struct
172 |   private let maxFiles: Int
173 |   private let maxSnippetLines: Int
    :
293 |   }
294 |
295 |   private func buildSystemPrompt(style: CommitGenOptions.PromptStyle) -> Instructions {
    |                `- note: add '@available' attribute to enclosing instance method
296 |     Instructions {
    |     |- error: 'init(_:)' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
297 |       """
298 |       Write a git commit message for the code changes shown.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:297:7: error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
295 |   private func buildSystemPrompt(style: CommitGenOptions.PromptStyle) -> Instructions {
296 |     Instructions {
297 |       """
    |       `- error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
298 |       Write a git commit message for the code changes shown.
299 |
FoundationModels.InstructionsBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct InstructionsBuilder {
2 | @available(*, unavailable, message: "Only `Instructions` and `InstructionsRepresentable` are supported.")
3 |   @export(implementation) public static func buildExpression<T>(_ expression: T) -> Instructions}
  |                                              `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:305:7: error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
303 |       Read the diff carefully. Lines with + are additions, - are deletions.
304 |       """
305 |       ""
    |       `- error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
306 |       style.styleGuidance
307 |     }
FoundationModels.InstructionsBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct InstructionsBuilder {
2 | @available(*, unavailable, message: "Only `Instructions` and `InstructionsRepresentable` are supported.")
3 |   @export(implementation) public static func buildExpression<T>(_ expression: T) -> Instructions}
  |                                              `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:306:7: error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
304 |       """
305 |       ""
306 |       style.styleGuidance
    |       `- error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
307 |     }
308 |   }
FoundationModels.InstructionsBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct InstructionsBuilder {
2 | @available(*, unavailable, message: "Only `Instructions` and `InstructionsRepresentable` are supported.")
3 |   @export(implementation) public static func buildExpression<T>(_ expression: T) -> Instructions}
  |                                              `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:296:18: error: 'buildBlock' is only available in watchOS 27.0 or newer
169 |
170 | /// Default prompt builder that balances snippet detail against token constraints.
171 | struct DefaultPromptBuilder: PromptBuilder {
    |        `- note: add '@available' attribute to enclosing struct
172 |   private let maxFiles: Int
173 |   private let maxSnippetLines: Int
    :
293 |   }
294 |
295 |   private func buildSystemPrompt(style: CommitGenOptions.PromptStyle) -> Instructions {
    |                `- note: add '@available' attribute to enclosing instance method
296 |     Instructions {
    |                  |- error: 'buildBlock' is only available in watchOS 27.0 or newer
    |                  `- note: add 'if #available' version check
297 |       """
298 |       Write a git commit message for the code changes shown.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift:357:40: error: 'nil' cannot be used in context expecting type 'String'
355 |             file.kind,
356 |             locationDescription(file.location),
357 |             file.isBinary ? "binary" : nil,
    |                                        `- error: 'nil' cannot be used in context expecting type 'String'
358 |             file.isGenerated ? "generated" : nil,
359 |           ].compactMap { $0 }.joined(separator: ", ")
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/PromptBuilder.swift (in target 'scg-product' from project 'scg')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PromptBuilder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/Renderer.swift (in target 'scg-product' from project 'scg')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Renderer.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() {
SwiftCompile normal arm64_32 (in target 'scg-product' from project 'scg')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

SwiftCompile normal arm64_32 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')
/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/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).
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)"
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/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
  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 {
    |  |                 |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
    |  |                 `- note: add '@available' attribute to enclosing initializer
    |3 |         self.summary = try content.value(forProperty: "summary")
    |4 |         self.category = try content.value(forProperty: "category")
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- 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: "High-level overview of a large changeset.",
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- 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: "High-level overview of a large changeset.",
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    | 4 |         description: "High-level overview of a large changeset.",
    | 5 |         properties: [
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", 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: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", type: String.self),
    | 8 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    | 4 |         description: "High-level overview of a large changeset.",
    | 5 |         properties: [
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", 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: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", type: String.self),
    | 8 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    |   :
    | 5 |         properties: [
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", type: String.self),
    | 7 |             FoundationModels.GenerationSchema.Property(name: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", type: String.self),
    |   |                              |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
    |   |                              `- note: add 'if #available' version check
    | 8 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    | 9 |         ]
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    |   :
    | 5 |         properties: [
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", type: String.self),
    | 7 |             FoundationModels.GenerationSchema.Property(name: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", 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 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    | 9 |         ]
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:8:30: 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
    | `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    |   :
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", type: String.self),
    | 7 |             FoundationModels.GenerationSchema.Property(name: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", type: String.self),
    | 8 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    |   |                              |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
    |   |                              `- note: add 'if #available' version check
    | 9 |         ]
    |10 |     )
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:8: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/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 {
    |        `- 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 {
    |   |                        `- note: add '@available' attribute to enclosing static property
    | 2 |     FoundationModels.GenerationSchema(
    | 3 |         type: Self.self,
    |   :
    | 6 |             FoundationModels.GenerationSchema.Property(name: "summary", description: "2-3 sentence summary of the overall purpose of the changes.", type: String.self),
    | 7 |             FoundationModels.GenerationSchema.Property(name: "category", description: "Category: feature, bugfix, refactor, test, docs, or chore.", type: String.self),
    | 8 |             FoundationModels.GenerationSchema.Property(name: "keyFiles", description: "1-5 most important file paths for understanding the change.", type: [String].self)
    |   |                                               |- error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
    |   |                                               `- note: add 'if #available' version check
    | 9 |         ]
    |10 |     )
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:15:49: error: 'ConvertibleToGeneratedContent' 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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   |                                                 |- error: 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
    |   |                                                 `- note: add 'if #available' version check
    |16 |     addProperty(name: "summary", value: self.summary)
    |17 |     addProperty(name: "category", value: self.category)
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
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/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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |16 |     addProperty(name: "summary", value: self.summary)
    |   |     |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |   |     `- note: add 'if #available' version check
    |17 |     addProperty(name: "category", value: self.category)
    |18 |     addProperty(name: "keyFiles", value: self.keyFiles)
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:17: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/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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |16 |     addProperty(name: "summary", value: self.summary)
    |17 |     addProperty(name: "category", value: self.category)
    |   |     |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |   |     `- note: add 'if #available' version check
    |18 |     addProperty(name: "keyFiles", value: self.keyFiles)
    |19 |     return GeneratedContent(
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:18:5: error: conformance of 'Array<Element>' to 'Generable' 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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |16 |     addProperty(name: "summary", value: self.summary)
    |17 |     addProperty(name: "category", value: self.category)
    |18 |     addProperty(name: "keyFiles", value: self.keyFiles)
    |   |     |- error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
    |   |     `- note: add 'if #available' version check
    |19 |     return GeneratedContent(
    |20 |         properties: properties,
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:19:12: 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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |17 |     addProperty(name: "category", value: self.category)
    |18 |     addProperty(name: "keyFiles", value: self.keyFiles)
    |19 |     return GeneratedContent(
    |   |            |- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
    |   |            `- note: add 'if #available' version check
    |20 |         properties: properties,
    |21 |         uniquingKeysWith: { _, second in
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:19:12: error: 'init(properties:id:uniquingKeysWith:)' 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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |17 |     addProperty(name: "category", value: self.category)
    |18 |     addProperty(name: "keyFiles", value: self.keyFiles)
    |19 |     return GeneratedContent(
    |   |            |- error: 'init(properties:id:uniquingKeysWith:)' is only available in watchOS 27.0 or newer
    |   |            `- note: add 'if #available' version check
    |20 |         properties: properties,
    |21 |         uniquingKeysWith: { _, second in
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:25:48: error: 'Generable' 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |23 |         }
    |24 |     )
    |25 |     func addProperty(name: String, value: some Generable) {
    |   |                                                `- error: 'Generable' is only available in watchOS 27.0 or newer
    |26 |       properties.append((name: name, value: value))
    |27 |     }
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:25:48: error: 'Generable' 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |23 |         }
    |24 |     )
    |25 |     func addProperty(name: String, value: some Generable) {
    |   |                                                `- error: 'Generable' is only available in watchOS 27.0 or newer
    |26 |       properties.append((name: name, value: value))
    |27 |     }
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:28:49: error: 'Generable' 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |26 |       properties.append((name: name, value: value))
    |27 |     }
    |28 |     func addProperty(name: String, value: (some Generable)?) {
    |   |                                                 `- error: 'Generable' is only available in watchOS 27.0 or newer
    |29 |       if explicitNil || value != nil {
    |30 |         properties.append((name: name, value: value))
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:28:49: error: 'Generable' 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |26 |       properties.append((name: name, value: value))
    |27 |     }
    |28 |     func addProperty(name: String, value: (some Generable)?) {
    |   |                                                 `- error: 'Generable' is only available in watchOS 27.0 or newer
    |29 |       if explicitNil || value != nil {
    |30 |         properties.append((name: name, value: value))
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:30: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/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 {
    |        `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing property
    |14 |     let explicitNil = false
    |15 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
    |   :
    |28 |     func addProperty(name: String, value: (some Generable)?) {
    |29 |       if explicitNil || value != nil {
    |30 |         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
    |31 |       }
    |32 |     }
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:41:33: 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
    | |- 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 {
    |   |                 `- note: add '@available' attribute to enclosing initializer
    |41 |         self.id = content.id ?? GenerationID()
    |   |                                 |- error: 'GenerationID' is only available in watchOS 27.0 or newer
    |   |                                 `- note: add 'if #available' version check
    |42 |         self.summary = try content.value(forProperty: "summary")
    |43 |         self.category = try content.value(forProperty: "category")
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:41:33: error: 'init()' 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
    | `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing initializer
    |41 |         self.id = content.id ?? GenerationID()
    |   |                                 |- error: 'init()' is only available in watchOS 27.0 or newer
    |   |                                 `- note: add 'if #available' version check
    |42 |         self.summary = try content.value(forProperty: "summary")
    |43 |         self.category = try content.value(forProperty: "category")
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:42: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: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
    | `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing initializer
    |41 |         self.id = content.id ?? GenerationID()
    |42 |         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
    |43 |         self.category = try content.value(forProperty: "category")
    |44 |         self.keyFiles = try content.value(forProperty: "keyFiles")
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:43: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: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
    | `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing initializer
    |41 |         self.id = content.id ?? GenerationID()
    |42 |         self.summary = try content.value(forProperty: "summary")
    |43 |         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
    |44 |         self.keyFiles = try content.value(forProperty: "keyFiles")
    |45 |     }
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
macro expansion @Generable:44: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: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
    | `- 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 {
    |   |                 `- note: add '@available' attribute to enclosing initializer
    |41 |         self.id = content.id ?? GenerationID()
    |42 |         self.summary = try content.value(forProperty: "summary")
    |43 |         self.category = try content.value(forProperty: "category")
    |44 |         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
    |45 |     }
    |46 | }
    +-------------------------------------------------------------------
 24 |
 25 | /// Builds a lightweight prompt with file metadata only (no diff snippets).
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:44:5: 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 {
    |                `- note: add '@available' attribute to enclosing instance method
 44 |     Instructions {
    |     |- error: 'Instructions' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 45 |       """
 46 |       You are an AI assistant analyzing a large set of code changes to provide a high-level overview.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:44:5: error: 'init(_:)' 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 {
    |                `- note: add '@available' attribute to enclosing instance method
 44 |     Instructions {
    |     |- error: 'init(_:)' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 45 |       """
 46 |       You are an AI assistant analyzing a large set of code changes to provide a high-level overview.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:45:7: error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
 43 |   private func buildSystemPrompt() -> Instructions {
 44 |     Instructions {
 45 |       """
    |       `- error: 'buildExpression' is unavailable: Only `Instructions` and `InstructionsRepresentable` are supported.
 46 |       You are an AI assistant analyzing a large set of code changes to provide a high-level overview.
 47 |       Your task is to understand the overall purpose of the changeset based on file metadata and change hints.
FoundationModels.InstructionsBuilder.buildExpression:3:46: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct InstructionsBuilder {
2 | @available(*, unavailable, message: "Only `Instructions` and `InstructionsRepresentable` are supported.")
3 |   @export(implementation) public static func buildExpression<T>(_ expression: T) -> Instructions}
  |                                              `- note: 'buildExpression' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:44:18: 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 {
    :
 41 |   }
 42 |
 43 |   private func buildSystemPrompt() -> Instructions {
    |                `- note: add '@available' attribute to enclosing instance method
 44 |     Instructions {
    |                  |- error: 'buildBlock' is only available in watchOS 27.0 or newer
    |                  `- note: add 'if #available' version check
 45 |       """
 46 |       You are an AI assistant analyzing a large set of code changes to provide a high-level overview.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:61:5: 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 {
    |                `- note: add '@available' attribute to enclosing instance method
 61 |     Prompt {
    |     |- error: 'Prompt' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 62 |       "Repository: \(metadata.repositoryName)"
 63 |       "Branch: \(metadata.branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:61:5: error: 'init(_:)' 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: 'init(_:)' is only available in watchOS 27.0 or newer
    |     `- note: add 'if #available' version check
 62 |       "Repository: \(metadata.repositoryName)"
 63 |       "Branch: \(metadata.branchName)"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/OverviewPromptBuilder.swift:62:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 60 |   private func buildUserPrompt(summary: ChangeSummary, metadata: PromptMetadata) -> Prompt {
 61 |     Prompt {
 62 |       "Repository: \(metadata.repositoryName)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 63 |       "Branch: \(metadata.branchName)"
 64 |       "Total files changed: \(summary.fileCount)"
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:63:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 61 |     Prompt {
 62 |       "Repository: \(metadata.repositoryName)"
 63 |       "Branch: \(metadata.branchName)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 64 |       "Total files changed: \(summary.fileCount)"
 65 |       "Total additions: +\(summary.totalAdditions)"
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:64:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 62 |       "Repository: \(metadata.repositoryName)"
 63 |       "Branch: \(metadata.branchName)"
 64 |       "Total files changed: \(summary.fileCount)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 65 |       "Total additions: +\(summary.totalAdditions)"
 66 |       "Total deletions: -\(summary.totalDeletions)"
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:65:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 63 |       "Branch: \(metadata.branchName)"
 64 |       "Total files changed: \(summary.fileCount)"
 65 |       "Total additions: +\(summary.totalAdditions)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 66 |       "Total deletions: -\(summary.totalDeletions)"
 67 |       ""
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:66:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 64 |       "Total files changed: \(summary.fileCount)"
 65 |       "Total additions: +\(summary.totalAdditions)"
 66 |       "Total deletions: -\(summary.totalDeletions)"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 67 |       ""
 68 |       "File changes (metadata only):"
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:67:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 65 |       "Total additions: +\(summary.totalAdditions)"
 66 |       "Total deletions: -\(summary.totalDeletions)"
 67 |       ""
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 68 |       "File changes (metadata only):"
 69 |
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:68:7: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 66 |       "Total deletions: -\(summary.totalDeletions)"
 67 |       ""
 68 |       "File changes (metadata only):"
    |       `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 69 |
 70 |       for file in summary.files {
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:71:9: error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 69 |
 70 |       for file in summary.files {
 71 |         fileMetadataLine(for: file)
    |         `- error: 'buildExpression' is unavailable: Only `Prompt` and `PromptRepresentable` are supported.
 72 |       }
 73 |
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: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).
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
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

PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-09-23 15:50:06.498 xcodebuild[1211:6937] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftCompile normal arm64 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 /Users/admin/builder/spi-builder-workspace/Sources/SwiftCommitGen/Core/UserConfiguration.swift (in target 'scg-product' from project 'scg')
	Building workspace scg with scheme scg
(3 failures)
BUILD FAILURE 6.4 watchOS