Build Information
Successful build of XMTPiOS, reference 4.9.0 (b6d3ab), with Swift 6.1 for macOS (SPM) on 29 Jan 2026 00:58:48 UTC.
Swift 6 data race errors: 16
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[379/395] Compiling XMTPiOS Member.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[380/395] Compiling XMTPiOS PermissionPolicySet.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[381/395] Compiling XMTPiOS PublicIdentity.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[382/395] Compiling XMTPiOS SignatureRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[383/395] Compiling XMTPiOS XMTPDebugInformation.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[384/395] Compiling XMTPiOS xmtpv3.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:166:11: warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
164 |
165 | case let .intent(intent):
166 | return intent
| |- warning: expression implicitly coerced from 'FfiIntent?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
167 |
168 | case let .actions(actions):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/DecodedMessageV2.swift:169:11: warning: expression implicitly coerced from 'FfiActions?' to 'Any'
167 |
168 | case let .actions(actions):
169 | return actions
| |- warning: expression implicitly coerced from 'FfiActions?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
170 |
171 | case let .deletedMessage(ffiDeletedMessage):
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:16012:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16010 | lowerError: @escaping (E) -> RustBuffer
16011 | ) -> UniffiForeignFuture {
16012 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
16013 | // See the note in uniffiTraitInterfaceCallAsync for details on `handleSuccess` and
16014 | // `handleError`.
:
16017 | callResult = try await makeCall()
16018 | } catch let error as E {
16019 | handleError(CALL_ERROR, lowerError(error))
| `- note: closure captures 'CALL_ERROR' which is accessible to code in the current task
16020 | return
16021 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Libxmtp/xmtpv3.swift:15983:21: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15981 | handleError: @escaping (Int8, RustBuffer) -> ()
15982 | ) -> UniffiForeignFuture {
15983 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
15984 | // Note: it's important we call either `handleSuccess` or `handleError` exactly once. Each
15985 | // call consumes an Arc reference, which means there should be no possibility of a double
:
15994 | callResult = try await makeCall()
15995 | } catch {
15996 | handleError(CALL_UNEXPECTED_ERROR, FfiConverterString.lower(String(describing: error)))
| `- note: closure captures 'handleError' which is accessible to code in the current task
15997 | return
15998 | }
[385/395] Compiling XMTPiOS ReactionCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[386/395] Compiling XMTPiOS ReactionV2Codec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[387/395] Compiling XMTPiOS ReadReceiptCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[388/395] Compiling XMTPiOS RemoteAttachmentCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[389/395] Compiling XMTPiOS ReplyCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[390/395] Compiling XMTPiOS TextCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[391/395] Compiling XMTPiOS TransactionReferenceCodec.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[392/395] Compiling XMTPiOS Conversation.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[393/395] Compiling XMTPiOS Conversations.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[394/395] Compiling XMTPiOS Crypto.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[395/395] Compiling XMTPiOS Dm.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/RemoteAttachmentCodec.swift:155:14: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
153 | $0.aes256GcmHkdfSha256 = aes256GcmHkdfSha256
154 | })
155 | return try EncodedContent(serializedData: decrypted)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
156 | }
157 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Codecs/ReplyCodec.swift:56:33: warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
54 | }
55 |
56 | let replyEncodedContent = try EncodedContent(serializedData: content.content)
| |- warning: 'init(serializedData:extensions:partial:options:)' is deprecated: replaced by 'init(serializedBytes:extensions:partial:options:)'
| `- note: use 'init(serializedBytes:extensions:partial:options:)' instead
57 | let replyCodec = Client.codecRegistry.find(for: replyEncodedContent.type)
58 | let replyContent = try replyCodec.decode(content: replyEncodedContent)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:63:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
61 |
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | let callback: (FfiConversation) -> Void
65 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:64:6: warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
62 | final class ConversationStreamCallback: FfiConversationCallback {
63 | let onCloseCallback: () -> Void
64 | let callback: (FfiConversation) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'ConversationStreamCallback' has non-sendable type '(FfiConversation) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
65 |
66 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:88:6: warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
86 |
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
| |- warning: stored property 'onCloseCallback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '() -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
89 | let callback: (FfiDecodedMessage) -> Void
90 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:89:6: warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
87 | final class MessageDeletionCallback: FfiMessageDeletionCallback {
88 | let onCloseCallback: () -> Void
89 | let callback: (FfiDecodedMessage) -> Void
| |- warning: stored property 'callback' of 'Sendable'-conforming class 'MessageDeletionCallback' has non-sendable type '(FfiDecodedMessage) -> Void'; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
90 |
91 | init(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:12: warning: no 'async' operations occur within 'await' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no 'async' operations occur within 'await' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:386:8: warning: no calls to throwing functions occur within 'try' expression
384 | do {
385 | let conversationType =
386 | try await conversation.conversationType()
| `- warning: no calls to throwing functions occur within 'try' expression
387 | if conversationType == .dm {
388 | continuation.yield(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:402:8: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
400 | )
401 | }
402 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
403 | print("Error processing conversation type: \(error)")
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:296:6: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
294 |
295 | continuation.onTermination = { @Sendable _ in
296 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
297 | }
298 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:302:5: warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct Dm: Identifiable, Equatable, Hashable {
| `- note: consider making struct 'Dm' conform to the 'Sendable' protocol
4 | var ffiConversation: FfiConversation
5 | var ffiLastMessage: FfiMessage?
:
300 | continuation.onTermination = { @Sendable _ in
301 | task.cancel()
302 | streamHolder.stream?.end()
| `- warning: capture of 'self' with non-sendable type 'Dm' in a '@Sendable' closure; this is an error in the Swift 6 language mode
303 | }
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:582:14: warning: no 'async' operations occur within 'await' expression
580 | options.insertedBeforeNs = insertedBeforeNs
581 |
582 | return try await ffiConversation.findEnrichedMessages(opts: options).compactMap {
| `- warning: no 'async' operations occur within 'await' expression
583 | ffiDecodedMessage in
584 | DecodedMessageV2(ffiMessage: ffiDecodedMessage)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:614:7: warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
612 |
613 | public func getPushTopics() async throws -> [String] {
614 | var duplicates = try await ffiConversation.findDuplicateDms()
| `- warning: variable 'duplicates' was never mutated; consider changing to 'let' constant
615 | var topicIds = duplicates.map { $0.id().toHex }
616 | topicIds.append(id)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:635:7: warning: no 'async' operations occur within 'await' expression
633 | /// - Throws: An error if the deletion fails (e.g., unauthorized deletion).
634 | public func deleteMessage(messageId: String) async throws -> String {
635 | try await ffiConversation.deleteMessage(messageId: messageId.hexToData).toHex
| `- warning: no 'async' operations occur within 'await' expression
636 | }
637 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:411:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
409 | }
410 |
411 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
412 | let stream: FfiStreamCloser
413 | switch type {
| `- note: closure captures 'type' which is accessible to code in the current task
414 | case .groups:
415 | stream = await ffiConversations.streamGroups(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:379:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
377 | let conversationCallback = ConversationStreamCallback {
378 | conversation in
379 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
380 | guard !Task.isCancelled else {
381 | continuation.finish()
:
388 | continuation.yield(
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
| `- note: closure captures 'self' which is accessible to code in the current task
391 | )
392 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:388:21: warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
386 | try await conversation.conversationType()
387 | if conversationType == .dm {
388 | continuation.yield(
| |- warning: sending 'conversation.dmFromFFI.dm' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.dmFromFFI.dm' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
389 | Conversation.dm(
390 | conversation.dmFromFFI(client: self.client)
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:394:21: warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
392 | )
393 | } else if conversationType == .group {
394 | continuation.yield(
| |- warning: sending 'conversation.groupFromFFI.group' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'conversation.groupFromFFI.group' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
395 | Conversation.group(
396 | conversation.groupFromFFI(
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:714:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
712 | }
713 |
714 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
715 | let stream: FfiStreamCloser
716 | switch type {
:
718 | stream = await ffiConversations.streamAllGroupMessages(
719 | messageCallback: messageCallback,
720 | consentStates: consentStates?.toFFI
| `- note: closure captures 'consentStates' which is accessible to code in the current task
721 | )
722 | case .dms:
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Conversations.swift:770:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
768 | }
769 |
770 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
771 | let stream = await ffiConversations.streamMessageDeletions(
| `- note: closure captures 'self' which is accessible to code in the current task
772 | callback: deletionCallback
773 | )
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/Dm.swift:278:29: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 | > {
277 | AsyncThrowingStream { continuation in
278 | let task = Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | streamHolder.stream = await ffiConversation.stream(
280 | messageCallback: MessageCallback {
:
288 | }
289 | } onClose: {
290 | onClose?()
| `- note: closure captures 'onClose' which is accessible to code in the current task
291 | continuation.finish()
292 | }
[396/397] Compiling XMTPTestHelpers TestHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/XMTPTestHelpers/TestHelpers.swift:91:21: warning: reference to static property 'customLocalAddress' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
89 | func setupLocalEnv() {
90 | if let localAddress = getLocalAddressFromEnvironment(), !localAddress.isEmpty {
91 | XMTPEnvironment.customLocalAddress = localAddress
| `- warning: reference to static property 'customLocalAddress' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
92 | }
93 | if let localHistoryUrl = getHistorySyncUrlFromEnvironment(), !localHistoryUrl.isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/XMTPEnvironment.swift:25:20: note: static property declared here
23 |
24 | // Optional override for the local environment
25 | public static var customLocalAddress: String?
| `- note: static property declared here
26 | public static var customHistorySyncUrl: String?
27 |
/Users/admin/builder/spi-builder-workspace/Sources/XMTPTestHelpers/TestHelpers.swift:94:21: warning: reference to static property 'customHistorySyncUrl' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
92 | }
93 | if let localHistoryUrl = getHistorySyncUrlFromEnvironment(), !localHistoryUrl.isEmpty {
94 | XMTPEnvironment.customHistorySyncUrl = localHistoryUrl
| `- warning: reference to static property 'customHistorySyncUrl' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/XMTPiOS/XMTPEnvironment.swift:26:20: note: static property declared here
24 | // Optional override for the local environment
25 | public static var customLocalAddress: String?
26 | public static var customHistorySyncUrl: String?
| `- note: static property declared here
27 |
28 | var address: String {
[397/397] Emitting module XMTPTestHelpers
Build complete! (116.97s)
Fetching https://github.com/bufbuild/connect-swift
Fetching https://github.com/krzyzanowskim/CryptoSwift.git
Fetching https://github.com/SimplyDanny/SwiftLintPlugins
Fetching https://github.com/apple/swift-docc-plugin.git
[1/291] Fetching swiftlintplugins
[292/13631] Fetching swiftlintplugins, cryptoswift
[293/15798] Fetching swiftlintplugins, cryptoswift, swift-docc-plugin
[510/24827] Fetching swiftlintplugins, cryptoswift, swift-docc-plugin, connect-swift
Fetched https://github.com/SimplyDanny/SwiftLintPlugins from cache (6.33s)
Fetched https://github.com/bufbuild/connect-swift from cache (6.33s)
Fetched https://github.com/krzyzanowskim/CryptoSwift.git from cache (6.33s)
Fetched https://github.com/apple/swift-docc-plugin.git from cache (6.33s)
Computing version for https://github.com/bufbuild/connect-swift
Computed https://github.com/bufbuild/connect-swift at 1.2.0 (6.98s)
Fetching https://github.com/apple/swift-nio.git from cache
Fetching https://github.com/apple/swift-protobuf.git from cache
Fetching https://github.com/apple/swift-nio-http2.git from cache
Fetching https://github.com/apple/swift-nio-ssl.git from cache
Fetched https://github.com/apple/swift-nio-ssl.git from cache (0.97s)
Fetched https://github.com/apple/swift-nio-http2.git from cache (3.19s)
Fetched https://github.com/apple/swift-protobuf.git from cache (3.25s)
Fetched https://github.com/apple/swift-nio.git from cache (3.29s)
Computing version for https://github.com/krzyzanowskim/CryptoSwift.git
Computed https://github.com/krzyzanowskim/CryptoSwift.git at 1.9.0 (3.93s)
Computing version for https://github.com/apple/swift-docc-plugin.git
Computed https://github.com/apple/swift-docc-plugin.git at 1.4.5 (0.60s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.91s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.64s)
Computing version for https://github.com/SimplyDanny/SwiftLintPlugins
Computed https://github.com/SimplyDanny/SwiftLintPlugins at 0.63.2 (0.49s)
Computing version for https://github.com/apple/swift-nio-http2.git
Computed https://github.com/apple/swift-nio-http2.git at 1.39.0 (0.52s)
Fetching https://github.com/apple/swift-atomics.git from cache
Fetched https://github.com/apple/swift-atomics.git from cache (0.71s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.0 (1.23s)
Computing version for https://github.com/apple/swift-protobuf.git
Computed https://github.com/apple/swift-protobuf.git at 1.33.3 (0.55s)
Computing version for https://github.com/apple/swift-nio-ssl.git
Computed https://github.com/apple/swift-nio-ssl.git at 2.36.0 (0.54s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.94.0 (0.65s)
Fetching https://github.com/apple/swift-collections.git from cache
Fetching https://github.com/apple/swift-system.git from cache
Fetched https://github.com/apple/swift-system.git from cache (1.09s)
Fetched https://github.com/apple/swift-collections.git from cache (1.41s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.6.4 (1.97s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.3.0 (0.62s)
Creating working copy for https://github.com/bufbuild/connect-swift
Working copy of https://github.com/bufbuild/connect-swift resolved at 1.2.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-nio-http2.git
Working copy of https://github.com/apple/swift-nio-http2.git resolved at 1.39.0
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.6.4
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.0
Creating working copy for https://github.com/apple/swift-protobuf.git
Working copy of https://github.com/apple/swift-protobuf.git resolved at 1.33.3
Creating working copy for https://github.com/apple/swift-docc-plugin.git
Working copy of https://github.com/apple/swift-docc-plugin.git resolved at 1.4.5
Creating working copy for https://github.com/krzyzanowskim/CryptoSwift.git
Working copy of https://github.com/krzyzanowskim/CryptoSwift.git resolved at 1.9.0
Creating working copy for https://github.com/SimplyDanny/SwiftLintPlugins
Working copy of https://github.com/SimplyDanny/SwiftLintPlugins resolved at 0.63.2
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.3.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.94.0
Creating working copy for https://github.com/apple/swift-nio-ssl.git
Working copy of https://github.com/apple/swift-nio-ssl.git resolved at 2.36.0
Downloading binary artifact https://github.com/xmtp/libxmtp/releases/download/swift-bindings-1.9.0-rc5.a05fda6/LibXMTPSwiftFFI.zip
Downloading binary artifact https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
[16375/135500951] Downloading https://github.com/xmtp/libxmtp/releases/download/swift-bindings-1.9.0-rc5.a05fda6/LibXMTPSwiftFFI.zip
[10743596/208089197] Downloading https://github.com/xmtp/libxmtp/releases/download/swift-bindings-1.9.0-rc5.a05fda6/LibXMTPSwiftFFI.zip, https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
Downloaded https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip (3.83s)
Downloaded https://github.com/xmtp/libxmtp/releases/download/swift-bindings-1.9.0-rc5.a05fda6/LibXMTPSwiftFFI.zip (6.83s)
Build complete.
{
"dependencies" : [
{
"identity" : "connect-swift",
"requirement" : {
"exact" : [
"1.2.0"
]
},
"type" : "sourceControl",
"url" : "https://github.com/bufbuild/connect-swift"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin.git"
},
{
"identity" : "cryptoswift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.8.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/krzyzanowskim/CryptoSwift.git"
},
{
"identity" : "swiftlintplugins",
"requirement" : {
"range" : [
{
"lower_bound" : "0.62.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/SimplyDanny/SwiftLintPlugins"
}
],
"manifest_display_name" : "XMTPiOS",
"name" : "XMTPiOS",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "XMTPiOS",
"targets" : [
"XMTPiOS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "XMTPTestHelpers",
"targets" : [
"XMTPTestHelpers"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "XMTPiOS",
"module_type" : "SwiftTarget",
"name" : "XMTPiOS",
"path" : "Sources/XMTPiOS",
"product_dependencies" : [
"Connect",
"CryptoSwift"
],
"product_memberships" : [
"XMTPiOS",
"XMTPTestHelpers"
],
"sources" : [
"Client.swift",
"CodecRegistry.swift",
"Codecs/AttachmentCodec.swift",
"Codecs/ContentCodec.swift",
"Codecs/ContentTypeID.swift",
"Codecs/DeleteMessageCodec.swift",
"Codecs/DeletedMessage.swift",
"Codecs/EncryptedEncodedContent.swift",
"Codecs/GroupUpdatedCodec.swift",
"Codecs/LeaveRequestCodec.swift",
"Codecs/MultiRemoteAttachmentCodec.swift",
"Codecs/ReactionCodec.swift",
"Codecs/ReactionV2Codec.swift",
"Codecs/ReadReceiptCodec.swift",
"Codecs/RemoteAttachmentCodec.swift",
"Codecs/ReplyCodec.swift",
"Codecs/TextCodec.swift",
"Codecs/TransactionReferenceCodec.swift",
"Conversation.swift",
"Conversations.swift",
"Crypto.swift",
"Dm.swift",
"EncodedContentCompression.swift",
"Extensions/Data.swift",
"Extensions/Date.swift",
"Extensions/Ffi.swift",
"Extensions/String.swift",
"Extensions/URL.swift",
"Group.swift",
"KeyUtil.swift",
"Libxmtp/ArchiveOptions.swift",
"Libxmtp/ConversationDebugInfo.swift",
"Libxmtp/DecodedMessage.swift",
"Libxmtp/DecodedMessageV2.swift",
"Libxmtp/DisappearingMessageSettings.swift",
"Libxmtp/GroupMembershipResult.swift",
"Libxmtp/InboxState.swift",
"Libxmtp/Installation.swift",
"Libxmtp/Member.swift",
"Libxmtp/PermissionPolicySet.swift",
"Libxmtp/PublicIdentity.swift",
"Libxmtp/SignatureRequest.swift",
"Libxmtp/XMTPDebugInformation.swift",
"Libxmtp/xmtpv3.swift",
"MessageVisibilityOptions.swift",
"Messages/PrivateKey.swift",
"PrivatePreferences.swift",
"Proto/device_sync_consent_backup.pb.swift",
"Proto/device_sync_content.pb.swift",
"Proto/device_sync_device_sync.pb.swift",
"Proto/device_sync_event_backup.pb.swift",
"Proto/device_sync_group_backup.pb.swift",
"Proto/device_sync_message_backup.pb.swift",
"Proto/identity_api_v1_identity.pb.swift",
"Proto/identity_associations_association.pb.swift",
"Proto/identity_associations_signature.pb.swift",
"Proto/identity_credential.pb.swift",
"Proto/keystore_api_v1_keystore.pb.swift",
"Proto/message_api_v1_authn.pb.swift",
"Proto/message_api_v1_message_api.pb.swift",
"Proto/message_contents_ciphertext.pb.swift",
"Proto/message_contents_composite.pb.swift",
"Proto/message_contents_contact.pb.swift",
"Proto/message_contents_content.pb.swift",
"Proto/message_contents_conversation_reference.pb.swift",
"Proto/message_contents_ecies.pb.swift",
"Proto/message_contents_frames.pb.swift",
"Proto/message_contents_invitation.pb.swift",
"Proto/message_contents_message.pb.swift",
"Proto/message_contents_private_key.pb.swift",
"Proto/message_contents_private_preferences.pb.swift",
"Proto/message_contents_public_key.pb.swift",
"Proto/message_contents_signature.pb.swift",
"Proto/message_contents_signed_payload.pb.swift",
"Proto/mls_api_v1_mls.pb.swift",
"Proto/mls_database_intents.pb.swift",
"Proto/mls_database_task.pb.swift",
"Proto/mls_message_contents_commit_log.pb.swift",
"Proto/mls_message_contents_content.pb.swift",
"Proto/mls_message_contents_content_types_delete_message.pb.swift",
"Proto/mls_message_contents_content_types_leave_request.pb.swift",
"Proto/mls_message_contents_content_types_multi_remote_attachment.pb.swift",
"Proto/mls_message_contents_content_types_reaction.pb.swift",
"Proto/mls_message_contents_content_types_wallet_send_calls.pb.swift",
"Proto/mls_message_contents_group_membership.pb.swift",
"Proto/mls_message_contents_group_metadata.pb.swift",
"Proto/mls_message_contents_group_mutable_metadata.pb.swift",
"Proto/mls_message_contents_group_permissions.pb.swift",
"Proto/mls_message_contents_oneshot.pb.swift",
"Proto/mls_message_contents_transcript_messages.pb.swift",
"Proto/mls_message_contents_welcome_pointer.pb.swift",
"Proto/mls_message_contents_wrapper_encryption.pb.swift",
"Proto/mls_validation_v1_service.pb.swift",
"Proto/xmtpv4_envelopes_envelopes.pb.swift",
"Proto/xmtpv4_envelopes_payer_report.pb.swift",
"Proto/xmtpv4_message_api_message_api.pb.swift",
"Proto/xmtpv4_message_api_misbehavior_api.pb.swift",
"Proto/xmtpv4_metadata_api_metadata_api.pb.swift",
"Proto/xmtpv4_payer_api_payer_api.pb.swift",
"Push/XMTPPush.swift",
"Push/service.connect.swift",
"Push/service.pb.swift",
"SendOptions.swift",
"SignedData.swift",
"SigningKey.swift",
"Topic.swift",
"Util.swift",
"XMTPEnvironment.swift",
"XMTPLogger.swift"
],
"target_dependencies" : [
"LibXMTPSwiftFFI"
],
"type" : "library"
},
{
"c99name" : "XMTPTests",
"module_type" : "SwiftTarget",
"name" : "XMTPTests",
"path" : "Tests/XMTPTests",
"sources" : [
"ArchiveTests.swift",
"AttachmentTests.swift",
"ClientTests.swift",
"CodecTests.swift",
"ConversationTests.swift",
"CryptoTests.swift",
"DeleteMessageCodecTests.swift",
"DeleteMessageTests.swift",
"DmTests.swift",
"EnrichedMessagesTests.swift",
"GroupPermissionsTests.swift",
"GroupTests.swift",
"HistorySyncTests.swift",
"LeaveRequestTests.swift",
"MultiRemoteAttachmentTest.swift",
"PerformanceTests.swift",
"ReactionTests.swift",
"ReadReceiptTests.swift",
"RemoteAttachmentTest.swift",
"ReplyTests.swift",
"TransactionReferencesTests.swift"
],
"target_dependencies" : [
"XMTPiOS",
"XMTPTestHelpers"
],
"type" : "test"
},
{
"c99name" : "XMTPTestHelpers",
"module_type" : "SwiftTarget",
"name" : "XMTPTestHelpers",
"path" : "Sources/XMTPTestHelpers",
"product_memberships" : [
"XMTPTestHelpers"
],
"sources" : [
"TestHelpers.swift"
],
"target_dependencies" : [
"XMTPiOS"
],
"type" : "library"
},
{
"c99name" : "LibXMTPSwiftFFI",
"module_type" : "BinaryTarget",
"name" : "LibXMTPSwiftFFI",
"path" : "remote/archive/LibXMTPSwiftFFI.zip",
"product_memberships" : [
"XMTPiOS",
"XMTPTestHelpers"
],
"sources" : [
],
"type" : "binary"
}
],
"tools_version" : "5.6"
}
Done.