The Swift Package Index logo.Swift Package Index

Build Information

Failed to build XMPPChatSwift, reference v1.0.0 (ff6f24), with Swift 6.1 for macOS (SPM) on 29 Jun 2026 05:33:47 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:23:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 21 |     ) async throws -> String {
 22 |         guard let stream = client?.xmppStream,
 23 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 24 |             throw XMPPOperationError.notConnected
 25 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:54:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 52 |     ) async throws -> String {
 53 |         guard let stream = client?.xmppStream,
 54 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 55 |             throw XMPPOperationError.notConnected
 56 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |100 |
    |101 |
    |102 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:103:17: warning: variable 'handler' was written to, but never read
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
103 |             var handler: ((XMPPStanza) -> Bool)?
    |                 `- warning: variable 'handler' was written to, but never read
104 |
105 |             handler = { stanza in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |184 |
    |185 |
    |186 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |269 |
    |270 |
    |271 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:20: error: 'SHA256' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                    |- error: 'SHA256' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:27: error: 'hash(data:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                           |- error: 'hash(data:)' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:481:21: warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
    |                     |- warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                     `- note: add 'if #available' version check
482 |     }
483 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:100:14: warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
 98 |         // Check if this is part of an active get-history query
 99 |         let roomJID = stanza.attributes["from"] ?? ""
100 |         for (queryId, collector) in getHistoryCollectors {
    |              `- warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
101 |             collector(stanza, roomJID)
102 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:248:13: warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
246 |
247 |         let isComposing = stanza.getChild("composing") != nil
248 |         let isPaused = stanza.getChild("paused") != nil
    |             `- warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
249 |
250 |         // Extract composing users list (simplified)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:317:13: warning: variable 'rooms' was never mutated; consider changing to 'let' constant
315 |         // Implementation for parsing room list
316 |         // This is a simplified version
317 |         var rooms: [RoomData] = []
    |             `- warning: variable 'rooms' was never mutated; consider changing to 'let' constant
318 |         // Parse rooms from stanza...
319 |         onGetChatRooms?(rooms)
[102/104] Compiling XMPPChatCore SendGetHistory.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:19: error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    |                   |- error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:33: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    |                                 `- error: 'isolation()' is only available in macOS 10.15 or newer
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:128:13: warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
126 |
127 |         // Filter rooms that need messages
128 |         let roomsNeedingMessages = unprocessedRooms.filter { room in
    |             `- warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
129 |             shouldProcessRoom(room)
130 |         }
macro expansion #isolation:1:1: error: 'MainActor' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    +--- macro expansion #isolation -------------------------------
    |    |1 | nil
    |    |  | `- error: 'MainActor' is only available in macOS 10.15 or newer
    |    +--------------------------------------------------------------
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:170:13: warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
    |             `- warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:171:13: warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
    |             `- warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
172 |         let historyComplete = room.historyComplete ?? false
173 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:172:13: warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
    |             `- warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
173 |
174 |         // //print("📊 MessageLoaderQueue: Room \(room.title) - messages: \(messageCount), noMessages: \(noMessages), historyComplete: \(historyComplete), needsProcessing: \(needsProcessing)")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:32: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                |- error: 'Task' is only available in macOS 10.15 or newer
    |                                `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:37: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                     |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:36: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:41: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                         `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:24: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:29: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                             |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:15: error: 'MainActor' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:28: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:23:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 21 |     ) async throws -> String {
 22 |         guard let stream = client?.xmppStream,
 23 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 24 |             throw XMPPOperationError.notConnected
 25 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:54:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 52 |     ) async throws -> String {
 53 |         guard let stream = client?.xmppStream,
 54 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 55 |             throw XMPPOperationError.notConnected
 56 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |100 |
    |101 |
    |102 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:103:17: warning: variable 'handler' was written to, but never read
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
103 |             var handler: ((XMPPStanza) -> Bool)?
    |                 `- warning: variable 'handler' was written to, but never read
104 |
105 |             handler = { stanza in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |184 |
    |185 |
    |186 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |269 |
    |270 |
    |271 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:20: error: 'SHA256' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                    |- error: 'SHA256' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:27: error: 'hash(data:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                           |- error: 'hash(data:)' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:481:21: warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
    |                     |- warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                     `- note: add 'if #available' version check
482 |     }
483 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:100:14: warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
 98 |         // Check if this is part of an active get-history query
 99 |         let roomJID = stanza.attributes["from"] ?? ""
100 |         for (queryId, collector) in getHistoryCollectors {
    |              `- warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
101 |             collector(stanza, roomJID)
102 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:248:13: warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
246 |
247 |         let isComposing = stanza.getChild("composing") != nil
248 |         let isPaused = stanza.getChild("paused") != nil
    |             `- warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
249 |
250 |         // Extract composing users list (simplified)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:317:13: warning: variable 'rooms' was never mutated; consider changing to 'let' constant
315 |         // Implementation for parsing room list
316 |         // This is a simplified version
317 |         var rooms: [RoomData] = []
    |             `- warning: variable 'rooms' was never mutated; consider changing to 'let' constant
318 |         // Parse rooms from stanza...
319 |         onGetChatRooms?(rooms)
[103/104] Compiling XMPPChatCore SendTextMessage.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:19: error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    |                   |- error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:33: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    |                                 `- error: 'isolation()' is only available in macOS 10.15 or newer
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:128:13: warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
126 |
127 |         // Filter rooms that need messages
128 |         let roomsNeedingMessages = unprocessedRooms.filter { room in
    |             `- warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
129 |             shouldProcessRoom(room)
130 |         }
macro expansion #isolation:1:1: error: 'MainActor' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    +--- macro expansion #isolation -------------------------------
    |    |1 | nil
    |    |  | `- error: 'MainActor' is only available in macOS 10.15 or newer
    |    +--------------------------------------------------------------
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:170:13: warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
    |             `- warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:171:13: warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
    |             `- warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
172 |         let historyComplete = room.historyComplete ?? false
173 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:172:13: warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
    |             `- warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
173 |
174 |         // //print("📊 MessageLoaderQueue: Room \(room.title) - messages: \(messageCount), noMessages: \(noMessages), historyComplete: \(historyComplete), needsProcessing: \(needsProcessing)")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:32: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                |- error: 'Task' is only available in macOS 10.15 or newer
    |                                `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:37: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                     |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:36: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:41: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                         `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:24: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:29: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                             |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:15: error: 'MainActor' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:28: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:23:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 21 |     ) async throws -> String {
 22 |         guard let stream = client?.xmppStream,
 23 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 24 |             throw XMPPOperationError.notConnected
 25 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:54:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 52 |     ) async throws -> String {
 53 |         guard let stream = client?.xmppStream,
 54 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 55 |             throw XMPPOperationError.notConnected
 56 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |100 |
    |101 |
    |102 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:103:17: warning: variable 'handler' was written to, but never read
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
103 |             var handler: ((XMPPStanza) -> Bool)?
    |                 `- warning: variable 'handler' was written to, but never read
104 |
105 |             handler = { stanza in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |184 |
    |185 |
    |186 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |269 |
    |270 |
    |271 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:20: error: 'SHA256' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                    |- error: 'SHA256' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:27: error: 'hash(data:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                           |- error: 'hash(data:)' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:481:21: warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
    |                     |- warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                     `- note: add 'if #available' version check
482 |     }
483 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:100:14: warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
 98 |         // Check if this is part of an active get-history query
 99 |         let roomJID = stanza.attributes["from"] ?? ""
100 |         for (queryId, collector) in getHistoryCollectors {
    |              `- warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
101 |             collector(stanza, roomJID)
102 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:248:13: warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
246 |
247 |         let isComposing = stanza.getChild("composing") != nil
248 |         let isPaused = stanza.getChild("paused") != nil
    |             `- warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
249 |
250 |         // Extract composing users list (simplified)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:317:13: warning: variable 'rooms' was never mutated; consider changing to 'let' constant
315 |         // Implementation for parsing room list
316 |         // This is a simplified version
317 |         var rooms: [RoomData] = []
    |             `- warning: variable 'rooms' was never mutated; consider changing to 'let' constant
318 |         // Parse rooms from stanza...
319 |         onGetChatRooms?(rooms)
[104/104] Compiling XMPPChatCore StanzaHandlers.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:59:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 47 |
 48 |     /// Start the auto-loading queue
 49 |     public func start() {
    |                 `- note: add @available attribute to enclosing instance method
 50 |         stop() // Stop any existing timer
 51 |
    :
 57 |         // Start polling
 58 |         processingTimer = Timer.scheduledTimer(withTimeInterval: pollInterval, repeats: true) { [weak self] _ in
 59 |             Task { @MainActor in
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
 60 |                 await self?.processQueue()
 61 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:19: error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    |                   |- error: 'withTaskGroup(of:returning:isolation:body:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:33: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    |                                 `- error: 'isolation()' is only available in macOS 10.15 or newer
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:128:13: warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
126 |
127 |         // Filter rooms that need messages
128 |         let roomsNeedingMessages = unprocessedRooms.filter { room in
    |             `- warning: initialization of immutable value 'roomsNeedingMessages' was never used; consider replacing with assignment to '_' or removing it
129 |             shouldProcessRoom(room)
130 |         }
macro expansion #isolation:1:1: error: 'MainActor' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:153:32: note: expanded code originates here
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
 91 |
 92 |     /// Process the queue - loads messages for rooms that need them (matching TypeScript logic)
 93 |     private func processQueue() async {
    |                  `- note: add @available attribute to enclosing instance method
 94 |         // Don't process if already processing, client is not online, or if loading
 95 |         guard !isProcessing,
    :
151 |
152 |             // Process batch in parallel (matching TypeScript: await Promise.all(batch.map(...)))
153 |             await withTaskGroup(of: Void.self) { group in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift
    |151 |
    |152 |
    |153 |                                #isolation
    |    +--- macro expansion #isolation -------------------------------
    |    |1 | nil
    |    |  | `- error: 'MainActor' is only available in macOS 10.15 or newer
    |    +--------------------------------------------------------------
    +------------------------------------------------------------------------------------------------------------
154 |                 for room in batch {
155 |                     group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:193:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
191 |         // and avoids server-side history misses when occupant presence isn't established yet.
192 |         await client.sendPresenceToRoom(roomJID: room.jid)
193 |         try? await Task.sleep(nanoseconds: 100_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
194 |
195 |         // //print("📥 MessageLoaderQueue: Loading \(pageSize) messages for room: \(room.title) (\(room.jid))")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:20: error: 'Task' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:211:25: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 10 |
 11 | @MainActor
 12 | public class MessageLoaderQueue {
    |              `- note: add @available attribute to enclosing class
 13 |     // Configuration constants (matching TypeScript defaults)
 14 |     private let batchSize: Int = 5  // Process 5 rooms at a time
    :
165 |
166 |     /// Load messages for a specific room (matching TypeScript logic)
167 |     private func loadMessagesForRoom(_ room: Room) async {
    |                  `- note: add @available attribute to enclosing instance method
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
    :
209 |
210 |         // Wait 200ms between rooms (matching TypeScript: await new Promise((res) => setTimeout(res, 200)))
211 |         try? await Task.sleep(nanoseconds: 200_000_000)
    |                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
212 |
213 |         // Mark as processed (matching TypeScript: processedChats.current.add(jid))
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:170:13: warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
168 |         // Check if room should be processed (matching TypeScript conditions)
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
    |             `- warning: initialization of immutable value 'messageCount' was never used; consider replacing with assignment to '_' or removing it
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:171:13: warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
169 |         let needsProcessing = shouldProcessRoom(room)
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
    |             `- warning: initialization of immutable value 'noMessages' was never used; consider replacing with assignment to '_' or removing it
172 |         let historyComplete = room.historyComplete ?? false
173 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageLoaderQueue.swift:172:13: warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
170 |         let messageCount = room.messages.count
171 |         let noMessages = room.noMessages ?? false
172 |         let historyComplete = room.historyComplete ?? false
    |             `- warning: initialization of immutable value 'historyComplete' was never used; consider replacing with assignment to '_' or removing it
173 |
174 |         // //print("📊 MessageLoaderQueue: Room \(room.title) - messages: \(messageCount), noMessages: \(noMessages), historyComplete: \(historyComplete), needsProcessing: \(needsProcessing)")
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:39:9: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 37 |         processing = true
 38 |
 39 |         Task {
    |         |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 40 |             while !queue.isEmpty {
 41 |                 let message = queue.removeFirst()
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:32: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                |- error: 'Task' is only available in macOS 10.15 or newer
    |                                `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:47:37: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 45 |                     // Re-queue message
 46 |                     queue.append(message)
 47 |                     try? await Task.sleep(nanoseconds: 1_000_000_000) // Wait 1 second
    |                                     |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
 48 |                     continue
 49 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:36: error: 'Task' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                                    `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/MessageQueue.swift:60:41: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  8 | import Foundation
  9 |
 10 | public class MessageQueue {
    |              `- note: add @available attribute to enclosing class
 11 |     private var queue: [QueuedMessage] = []
 12 |     private var processing: Bool = false
    :
 31 |
 32 |     /// Process queue
 33 |     private func processQueue() {
    |                  `- note: add @available attribute to enclosing instance method
 34 |         guard !processing else { return }
 35 |         guard !queue.isEmpty else { return }
    :
 58 |                         message.retryCount += 1
 59 |                         queue.append(message)
 60 |                         try? await Task.sleep(nanoseconds: UInt64(retryDelay * 1_000_000_000))
    |                                         |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                         `- note: add 'if #available' version check
 61 |                     } else {
 62 |                         // Max retries reached, call failure handler
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:24: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:61:29: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
 12 |     /// We use firstName + lastName as nickname (from UserStore)
 13 |     public func presenceInRoom(roomJID: String, settleDelay: TimeInterval = 0) async {
    |                 `- note: add @available attribute to enclosing instance method
 14 |         guard let stream = client?.xmppStream else { return }
 15 |         guard let jid = stream.jid else {
    :
 59 |
 60 |         if settleDelay > 0 {
 61 |             try? await Task.sleep(nanoseconds: UInt64(settleDelay * 1_000_000_000))
    |                             |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 62 |         }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:15: error: 'MainActor' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |               |- error: 'MainActor' is only available in macOS 10.15 or newer
    |               `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:108:25: error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
 78 |     /// broadcasts (and ejabberd drops the mucsub subscription for this
 79 |     /// resource as a side effect).
 80 |     public func leaveRoom(roomJID: String) async {
    |                 `- note: add @available attribute to enclosing instance method
 81 |         guard let stream = client?.xmppStream else { return }
 82 |         guard let jid = stream.jid else {
    :
106 |         // `presenceInRoom` for this JID actually goes out instead of
107 |         // being short-circuited by the early return.
108 |         await MainActor.run {
    |                         |- error: 'run(resultType:body:)' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
109 |             client?.clearPresenceResponse(forRoom: bareRoomJID)
110 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:28: error: 'Task' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/PresenceOperations.swift:120:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  7 | import Foundation
  8 |
  9 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 10 |     /// Send presence to a room (presenceInRoom from TypeScript)
 11 |     /// TypeScript: to: `${roomJID}/${client.jid?.getLocal()}`
    :
113 |     /// Send presence to all rooms (allRoomPresences from TypeScript)
114 |     /// Note: This requires access to the rooms list, which should come from RoomListViewModel or similar
115 |     public func allRoomPresences(roomJIDs: [String]) async {
    |                 `- note: add @available attribute to enclosing instance method
116 |         // Send sequentially to avoid server flood/disconnect on large room lists.
117 |         for (index, roomJID) in roomJIDs.enumerated() {
118 |             await self.presenceInRoom(roomJID: roomJID)
119 |             if index < roomJIDs.count - 1 {
120 |                 try? await Task.sleep(nanoseconds: 80_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
121 |             }
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:23:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 21 |     ) async throws -> String {
 22 |         guard let stream = client?.xmppStream,
 23 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 24 |             throw XMPPOperationError.notConnected
 25 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:54:19: warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 52 |     ) async throws -> String {
 53 |         guard let stream = client?.xmppStream,
 54 |               let jid = stream.jid else {
    |                   `- warning: immutable value 'jid' was never used; consider replacing with '_' or removing it
 55 |             throw XMPPOperationError.notConnected
 56 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:139:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
137 |
138 |             // Timeout after 2 seconds
139 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
141 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:140:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
138 |             // Timeout after 2 seconds
139 |             Task {
140 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
141 |                 continuation.resume(returning: false)
142 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:102:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
 75 |     /// Create room presence (first step in room creation)
 76 |     /// Mirrors createRoomPresence from createRoomPresence.xmpp.ts
 77 |     private func createRoomPresence(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
 78 |         guard let stream = client?.xmppStream,
 79 |               let jid = stream.jid else {
    :
100 |
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |100 |
    |101 |
    |102 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
103 |             var handler: ((XMPPStanza) -> Bool)?
104 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:103:17: warning: variable 'handler' was written to, but never read
101 |         // Wait for presence response with status codes 201 and 110
102 |         let responseReceived = await withCheckedContinuation { continuation in
103 |             var handler: ((XMPPStanza) -> Bool)?
    |                 `- warning: variable 'handler' was written to, but never read
104 |
105 |             handler = { stanza in
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:190:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
188 |
189 |             // Timeout after 2 seconds
190 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
192 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:191:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
189 |             // Timeout after 2 seconds
190 |             Task {
191 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
192 |                 continuation.resume(returning: false)
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:186:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
150 |     /// Set current user as room owner
151 |     /// Mirrors setMeAsOwner from setMeAsOwner.xmpp.ts
152 |     private func setMeAsOwner(roomId: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
153 |         guard let stream = client?.xmppStream else {
154 |             throw XMPPOperationError.notConnected
    :
184 |
185 |         // Wait for result
186 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |184 |
    |185 |
    |186 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
187 |             stream.send(iqStanza)
188 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:38: error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    |                                      |- error: 'withCheckedContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'Task' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:275:13: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
273 |
274 |             // Timeout after 2 seconds
275 |             Task {
    |             |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
277 |                 continuation.resume(returning: false)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:28: error: 'Task' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:276:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
274 |             // Timeout after 2 seconds
275 |             Task {
276 |                 try? await Task.sleep(nanoseconds: 2_000_000_000)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
277 |                 continuation.resume(returning: false)
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:63: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:271:62: note: expanded code originates here
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
201 |     /// Configure room (set title and description)
202 |     /// Mirrors roomConfig from roomConfig.xmpp.ts
203 |     private func roomConfig(roomId: String, title: String, description: String) async throws {
    |                  `- note: add @available attribute to enclosing instance method
204 |         guard let stream = client?.xmppStream else {
205 |             throw XMPPOperationError.notConnected
    :
269 |
270 |         // Wait for result
271 |         let responseReceived = await withCheckedContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift
    |269 |
    |270 |
    |271 |                                                              #isolation
    |    |                                                               `- error: 'isolation()' is only available in macOS 10.15 or newer
    +--------------------------------------------------------------------------------------------------------
272 |             stream.send(iqStanza)
273 |
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:20: error: 'SHA256' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                    |- error: 'SHA256' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:480:27: error: 'hash(data:)' is only available in macOS 10.15 or newer
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
    |                           |- error: 'hash(data:)' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
482 |     }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/RoomOperations.swift:481:21: warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
  9 | import CryptoKit
 10 |
 11 | extension XMPPOperations {
    | `- note: add @available attribute to enclosing extension
 12 |
 13 |     // MARK: - Create Room
    :
476 |
477 |     /// SHA256 hash function (matches TypeScript js-sha256)
478 |     private func sha256(_ string: String) -> String {
    |                  `- note: add @available attribute to enclosing instance method
479 |         let data = Data(string.utf8)
480 |         let hash = SHA256.hash(data: data)
481 |         return hash.compactMap { String(format: "%02x", $0) }.joined()
    |                     |- warning: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                     `- note: add 'if #available' version check
482 |     }
483 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:100:14: warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
 98 |         // Check if this is part of an active get-history query
 99 |         let roomJID = stanza.attributes["from"] ?? ""
100 |         for (queryId, collector) in getHistoryCollectors {
    |              `- warning: immutable value 'queryId' was never used; consider replacing with '_' or removing it
101 |             collector(stanza, roomJID)
102 |         }
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:248:13: warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
246 |
247 |         let isComposing = stanza.getChild("composing") != nil
248 |         let isPaused = stanza.getChild("paused") != nil
    |             `- warning: initialization of immutable value 'isPaused' was never used; consider replacing with assignment to '_' or removing it
249 |
250 |         // Extract composing users list (simplified)
/Users/admin/builder/spi-builder-workspace/Sources/XMPPChatCore/XMPPOperations/StanzaHandlers.swift:317:13: warning: variable 'rooms' was never mutated; consider changing to 'let' constant
315 |         // Implementation for parsing room list
316 |         // This is a simplified version
317 |         var rooms: [RoomData] = []
    |             `- warning: variable 'rooms' was never mutated; consider changing to 'let' constant
318 |         // Parse rooms from stanza...
319 |         onGetChatRooms?(rooms)
warning: 'starscream': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/Starscream/Sources/Info.plist
BUILD FAILURE 6.1 macosSpm