The Swift Package Index logo.Swift Package Index

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 InferSendableFromCaptures

Build 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.