Build Information
Failed to build XMPPChatSwift, reference main (ff6f24), with Swift 6.1 for macOS (SPM) on 29 Jun 2026 04:21:50 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64Build 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