This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of QSChatView with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/FiveSheepCo/QSChatView.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/FiveSheepCo/QSChatView
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 9b15461 Add message deletion and `ChatConfigBuilder`
Cloned https://github.com/FiveSheepCo/QSChatView.git
Revision (git rev-parse @):
9b1546132d09f1b34d2e6051eaaf5b413334482f
SUCCESS checkout https://github.com/FiveSheepCo/QSChatView.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/FiveSheepCo/QSChatView.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/25] Emitting module QSChatView
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'defaultChatter' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     /// A chat participant representing the current user.
[4/27] Compiling QSChatView ChatParticipantRole.swift
[5/27] Compiling QSChatView ChatConfig.swift
[6/27] Compiling QSChatView ChatParticipant.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'defaultChatter' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     /// A chat participant representing the current user.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
[7/27] Compiling QSChatView ChatParticipantBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'defaultChatter' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     /// A chat participant representing the current user.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
[8/27] Compiling QSChatView BetterScrollView.swift
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ForegroundColorAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ParagraphStyleAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.SwiftUIAttributes, AttributeScopes.SwiftUIAttributes.FontAttribute>'; this is an error in the Swift 6 language mode
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 36 |         var str = AttributedString(stringLiteral: message.displayTimeStamp)
 37 |         str.foregroundColor = timestampColor
 38 |         str.paragraphStyle = paragraphStyle
    |         `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 39 |         str.font = .footnote
 40 |         return str
AppKit.NSParagraphStyle:2:11: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @available(*, unavailable)
2 | extension NSParagraphStyle : @unchecked Sendable {
  |           `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
3 | }
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 |     deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
[9/27] Compiling QSChatView ChatBubble.swift
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ForegroundColorAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ParagraphStyleAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.SwiftUIAttributes, AttributeScopes.SwiftUIAttributes.FontAttribute>'; this is an error in the Swift 6 language mode
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 36 |         var str = AttributedString(stringLiteral: message.displayTimeStamp)
 37 |         str.foregroundColor = timestampColor
 38 |         str.paragraphStyle = paragraphStyle
    |         `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 39 |         str.font = .footnote
 40 |         return str
AppKit.NSParagraphStyle:2:11: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @available(*, unavailable)
2 | extension NSParagraphStyle : @unchecked Sendable {
  |           `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
3 | }
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 |     deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
[10/27] Compiling QSChatView ChatTextField.swift
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ForegroundColorAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.AppKitAttributes, AttributeScopes.AppKitAttributes.ParagraphStyleAttribute>'; this is an error in the Swift 6 language mode
<unknown>:0: warning: cannot form key path that captures non-sendable type 'KeyPath<AttributeScopes.SwiftUIAttributes, AttributeScopes.SwiftUIAttributes.FontAttribute>'; this is an error in the Swift 6 language mode
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 36 |         var str = AttributedString(stringLiteral: message.displayTimeStamp)
 37 |         str.foregroundColor = timestampColor
 38 |         str.paragraphStyle = paragraphStyle
    |         `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
 39 |         str.font = .footnote
 40 |         return str
AppKit.NSParagraphStyle:2:11: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @available(*, unavailable)
2 | extension NSParagraphStyle : @unchecked Sendable {
  |           `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
3 | }
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              |- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
  |              `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 |     deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
[11/27] Compiling QSChatView ChatController.swift
[12/27] Compiling QSChatView ChatMessage.swift
[13/27] Compiling QSChatView ChatScrollBehavior.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:53: warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |             }
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
    |                                                     `- warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |                 let promise = controller.sendPromise(from: participant)
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:63: warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |             }
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
    |                                                               `- warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |                 let promise = controller.sendPromise(from: participant)
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:186:31: warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
186 |                 let promise = controller.sendPromise(from: participant)
    |                               `- warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
   |              `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 |     @Published var textInputContent: String = ""
14 |     @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:16: warning: reference to captured var 'offset' in concurrently-executing code; this is an error in the Swift 6 language mode
178 |         timer?.invalidate()
179 |         timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 |             if offset == dummyConversation.count {
    |                `- warning: reference to captured var 'offset' in concurrently-executing code; this is an error in the Swift 6 language mode
181 |                 timer.invalidate()
182 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:26: warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
141 |     static var timer: Timer? = nil
142 |
143 |     static var dummyConversation: [String] {
    |                `- note: static property declared here
144 |         [
145 |             "Hey! How's your day going?",
    :
178 |         timer?.invalidate()
179 |         timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 |             if offset == dummyConversation.count {
    |                          `- warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
181 |                 timer.invalidate()
182 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:25: warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                         `- warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
   |              `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 |     @Published var textInputContent: String = ""
14 |     @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:44: warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                                            `- warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessagePromise.swift:13:15: note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
11 | ///
12 | /// Use via ``ChatController/sendPromise(from:)``
13 | public struct ChatMessagePromise {
   |               `- note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
14 |     let controller: ChatController
15 |     let messageId: UUID
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:66: warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                                                                  `- warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessageContent.swift:12:13: note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
10 |
11 | /// The content of a chat message.
12 | public enum ChatMessageContent: Equatable {
   |             `- note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
13 |
14 |     /// A typing indicator.
[14/27] Compiling QSChatView QSChatView.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:53: warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |             }
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
    |                                                     `- warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |                 let promise = controller.sendPromise(from: participant)
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:63: warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |             }
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
    |                                                               `- warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |                 let promise = controller.sendPromise(from: participant)
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:186:31: warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
184 |             DispatchQueue.main.async {
185 |                 let participant = offset % 2 == 0 ? chattee : chatter
186 |                 let promise = controller.sendPromise(from: participant)
    |                               `- warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
187 |                 let content = ChatMessageContent.text(dummyConversation[offset])
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
   |              `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 |     @Published var textInputContent: String = ""
14 |     @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:16: warning: reference to captured var 'offset' in concurrently-executing code; this is an error in the Swift 6 language mode
178 |         timer?.invalidate()
179 |         timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 |             if offset == dummyConversation.count {
    |                `- warning: reference to captured var 'offset' in concurrently-executing code; this is an error in the Swift 6 language mode
181 |                 timer.invalidate()
182 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:26: warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
141 |     static var timer: Timer? = nil
142 |
143 |     static var dummyConversation: [String] {
    |                `- note: static property declared here
144 |         [
145 |             "Hey! How's your day going?",
    :
178 |         timer?.invalidate()
179 |         timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 |             if offset == dummyConversation.count {
    |                          `- warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
181 |                 timer.invalidate()
182 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:25: warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                         `- warning: capture of 'controller' with non-sendable type 'ChatController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
   |              `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 |     @Published var textInputContent: String = ""
14 |     @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:44: warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                                            `- warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessagePromise.swift:13:15: note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
11 | ///
12 | /// Use via ``ChatController/sendPromise(from:)``
13 | public struct ChatMessagePromise {
   |               `- note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
14 |     let controller: ChatController
15 |     let messageId: UUID
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:66: warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
188 |                 Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 |                     DispatchQueue.main.async {
190 |                         controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
    |                                                                  `- warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                         startTimestamp += 60 * 2
192 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessageContent.swift:12:13: note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
10 |
11 | /// The content of a chat message.
12 | public enum ChatMessageContent: Equatable {
   |             `- note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
13 |
14 |     /// A typing indicator.
[15/27] Compiling QSChatView ContentHeightModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[16/27] Compiling QSChatView ScrollOffsetModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[17/27] Compiling QSChatView ContentHeightPreferenceKey.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[18/27] Compiling QSChatView ChatMessageContent.swift
[19/27] Compiling QSChatView ChatMessagePromise.swift
[20/27] Compiling QSChatView ChatConfigBuilder.swift
[21/27] Compiling QSChatView ChatContextMenuItem.swift
[22/27] Compiling QSChatView ScrollOffsetPreferenceKey.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[23/27] Compiling QSChatView ChatTextFieldStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[24/27] Compiling QSChatView ChatAvatar.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 |     typealias Value = CGFloat
13 |     static var defaultValue: CGFloat = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     static func reduce(value: inout Value, nextValue: () -> Value) {
[25/27] Compiling QSChatView TypingIndicator.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:38:49: warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
36 |                 repeats: true
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
   |                                                 `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |                     offset += offsetChangePerTimeStep
40 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
39 |                     offset += offsetChangePerTimeStep
   |                     `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
40 |                 }
41 |             }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                                        `- warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSWindow:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "cascadeTopLeft(from:)")
 75 |     open func cascadeTopLeftFromPoint(_ topLeftPoint: NSPoint) -> NSPoint
 76 |     @MainActor open var frame: NSRect { get }
    |                         `- note: property declared here
 77 |     open func animationResizeTime(_ newFrame: NSRect) -> TimeInterval
 78 |     open func setFrame(_ frameRect: NSRect, display displayFlag: Bool, animate animateFlag: Bool)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                            `- warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:12:30: note: property declared here
 10 |     @available(swift, obsoleted: 3, renamed: "window(withWindowNumber:)")
 11 |     open func windowWithWindowNumber(_ windowNum: Int) -> NSWindow?
 12 |     @MainActor weak open var mainWindow: NSWindow? { get }
    |                              `- note: property declared here
 13 |     weak open var keyWindow: NSWindow? { get }
 14 |     open var isActive: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                     `- warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:2:20: note: class property declared here
  1 | @MainActor open class NSApplication : NSResponder, NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElementProtocol, NSAccessibilityProtocol {
  2 |     open class var shared: NSApplication { get }
    |                    `- note: class property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
[26/27] Compiling QSChatView WrappedChatBubble.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:38:49: warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
36 |                 repeats: true
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
   |                                                 `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |                     offset += offsetChangePerTimeStep
40 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
39 |                     offset += offsetChangePerTimeStep
   |                     `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
40 |                 }
41 |             }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                                        `- warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSWindow:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "cascadeTopLeft(from:)")
 75 |     open func cascadeTopLeftFromPoint(_ topLeftPoint: NSPoint) -> NSPoint
 76 |     @MainActor open var frame: NSRect { get }
    |                         `- note: property declared here
 77 |     open func animationResizeTime(_ newFrame: NSRect) -> TimeInterval
 78 |     open func setFrame(_ frameRect: NSRect, display displayFlag: Bool, animate animateFlag: Bool)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                            `- warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:12:30: note: property declared here
 10 |     @available(swift, obsoleted: 3, renamed: "window(withWindowNumber:)")
 11 |     open func windowWithWindowNumber(_ windowNum: Int) -> NSWindow?
 12 |     @MainActor weak open var mainWindow: NSWindow? { get }
    |                              `- note: property declared here
 13 |     weak open var keyWindow: NSWindow? { get }
 14 |     open var isActive: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                     `- warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:2:20: note: class property declared here
  1 | @MainActor open class NSApplication : NSResponder, NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElementProtocol, NSAccessibilityProtocol {
  2 |     open class var shared: NSApplication { get }
    |                    `- note: class property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
[27/27] Compiling QSChatView ScrollViewData.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:38:49: warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
36 |                 repeats: true
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
   |                                                 `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |                     offset += offsetChangePerTimeStep
40 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
11 | ///
12 | /// - Note: The default values are well-optimized.
13 | struct TypingIndicator: View {
   |        `- note: consider making struct 'TypingIndicator' conform to the 'Sendable' protocol
14 |     let timeInterval: TimeInterval = 0.2
15 |     let offsetChangePerTimeStep: Double = 1.0
   :
37 |             ) { _ in
38 |                 withAnimation(.linear(duration: timeInterval)) {
39 |                     offset += offsetChangePerTimeStep
   |                     `- warning: capture of 'self' with non-sendable type 'TypingIndicator' in an isolated closure; this is an error in the Swift 6 language mode
40 |                 }
41 |             }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
   |              `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 |     @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 |     public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 |     /// A chat participant representing the current user.
19 |     public static let me = ChatParticipant(role: .chatter)
   |                       |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'me' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     let name: String?
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                                        `- warning: main actor-isolated property 'frame' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSWindow:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "cascadeTopLeft(from:)")
 75 |     open func cascadeTopLeftFromPoint(_ topLeftPoint: NSPoint) -> NSPoint
 76 |     @MainActor open var frame: NSRect { get }
    |                         `- note: property declared here
 77 |     open func animationResizeTime(_ newFrame: NSRect) -> TimeInterval
 78 |     open func setFrame(_ frameRect: NSRect, display displayFlag: Bool, animate animateFlag: Bool)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                            `- warning: main actor-isolated property 'mainWindow' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:12:30: note: property declared here
 10 |     @available(swift, obsoleted: 3, renamed: "window(withWindowNumber:)")
 11 |     open func windowWithWindowNumber(_ windowNum: Int) -> NSWindow?
 12 |     @MainActor weak open var mainWindow: NSWindow? { get }
    |                              `- note: property declared here
 13 |     weak open var keyWindow: NSWindow? { get }
 14 |     open var isActive: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
24 |         return UIScreen.main.bounds.height
25 |         #elseif os(macOS)
26 |         return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
   |                                     `- warning: main actor-isolated class property 'shared' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
27 |         #endif
28 |     }
AppKit.NSApplication:2:20: note: class property declared here
  1 | @MainActor open class NSApplication : NSResponder, NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElementProtocol, NSAccessibilityProtocol {
  2 |     open class var shared: NSApplication { get }
    |                    `- note: class property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
Build complete! (40.04s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "QSChatView",
  "name" : "QSChatView",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "QSChatView",
      "targets" : [
        "QSChatView"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "QSChatViewTests",
      "module_type" : "SwiftTarget",
      "name" : "QSChatViewTests",
      "path" : "Tests/QSChatViewTests",
      "sources" : [
        "ChatControllerTests.swift",
        "QSChatViewTests.swift"
      ],
      "target_dependencies" : [
        "QSChatView"
      ],
      "type" : "test"
    },
    {
      "c99name" : "QSChatView",
      "module_type" : "SwiftTarget",
      "name" : "QSChatView",
      "path" : "Sources/QSChatView",
      "product_memberships" : [
        "QSChatView"
      ],
      "sources" : [
        "Internal/Components/BetterScrollView.swift",
        "Internal/Components/ChatBubble.swift",
        "Internal/Components/ChatTextField.swift",
        "Internal/Components/TypingIndicator.swift",
        "Internal/Components/WrappedChatBubble.swift",
        "Internal/Data/ScrollViewData.swift",
        "Internal/Modifiers/ContentHeightModifier.swift",
        "Internal/Modifiers/ScrollOffsetModifier.swift",
        "Internal/PreferenceKeys/ContentHeightPreferenceKey.swift",
        "Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift",
        "Internal/Styles/ChatTextFieldStyle.swift",
        "Public/ChatAvatar.swift",
        "Public/ChatController.swift",
        "Public/ChatMessage.swift",
        "Public/ChatMessageContent.swift",
        "Public/ChatMessagePromise.swift",
        "Public/ChatParticipant.swift",
        "Public/ChatParticipantBuilder.swift",
        "Public/ChatParticipantRole.swift",
        "Public/Config/ChatConfig.swift",
        "Public/Config/ChatConfigBuilder.swift",
        "Public/Config/ChatContextMenuItem.swift",
        "Public/Config/ChatScrollBehavior.swift",
        "QSChatView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.