The Swift Package Index logo.Swift Package Index

Build Information

Successful build of AwesomeWS, reference 2.4.3 (2c1304), with Swift 6.1 for Android on 28 May 2025 07:51:30 UTC.

Swift 6 data race errors: 4

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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 2>&1

Build Log

  4 |     var key: String { get }
  5 |     var path: String { get }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:130:12: warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
128 |         }
129 |
130 |         ws.onPing { [weak self] _ in
    |            `- warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:137:12: warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
135 |         }
136 |
137 |         ws.onPong { [weak self] _ in
    |            `- warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:103:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
101 |
102 |         self.application.ws.knownEventLoop.submit { [weak self] in
103 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: mutation of captured var 'client' in concurrently-executing code
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: mutation of captured var 'client' in concurrently-executing code
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:110:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
108 |             guard
109 |                 let client = client,
110 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
111 |             else { return }
112 |             self._on(open: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: reference to captured var 'client' in concurrently-executing code
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:118:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
116 |
117 |         ws.onClose.whenComplete { [weak self] _ in
118 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:17: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                 `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:50: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                                                  `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: reference to captured var 'client' in concurrently-executing code
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: reference to captured var 'client' in concurrently-executing code
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:126:17: warning: mutation of captured var 'client' in concurrently-executing code
124 |                 self._on(close: c)
125 |                 self.on(close: c)
126 |                 client = nil
    |                 `- warning: mutation of captured var 'client' in concurrently-executing code
127 |             }
128 |         }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:132:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
133 |             self?._on(ping: client)
134 |             self?.on(ping: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: reference to captured var 'client' in concurrently-executing code
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:139:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
140 |             self?._on(pong: client)
141 |             self?.on(pong: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: reference to captured var 'client' in concurrently-executing code
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:147:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
145 |             guard
146 |                 let client = client,
147 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
148 |             else { return }
149 |             guard self.exchangeMode != .binary else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: reference to captured var 'client' in concurrently-executing code
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
161 |                 let self = self
162 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:161:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
159 |             guard
160 |                 let client = client,
161 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
162 |             else { return }
163 |             guard self.exchangeMode != .text else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: reference to captured var 'client' in concurrently-executing code
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
161 |                 let self = self
162 |             else { return }
[2231/2241] Compiling WS Bindable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:3:30: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  1 | import Vapor
  2 |
  3 | public protocol AnyObserver: class, Broadcastable, CustomStringConvertible, Disconnectable, Sendable, Loggable {
    |                              `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  4 |     var key: String { get }
  5 |     var path: String { get }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:130:12: warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
128 |         }
129 |
130 |         ws.onPing { [weak self] _ in
    |            `- warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:137:12: warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
135 |         }
136 |
137 |         ws.onPong { [weak self] _ in
    |            `- warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:103:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
101 |
102 |         self.application.ws.knownEventLoop.submit { [weak self] in
103 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: mutation of captured var 'client' in concurrently-executing code
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: mutation of captured var 'client' in concurrently-executing code
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:110:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
108 |             guard
109 |                 let client = client,
110 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
111 |             else { return }
112 |             self._on(open: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: reference to captured var 'client' in concurrently-executing code
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:118:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
116 |
117 |         ws.onClose.whenComplete { [weak self] _ in
118 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:17: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                 `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:50: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                                                  `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: reference to captured var 'client' in concurrently-executing code
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: reference to captured var 'client' in concurrently-executing code
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:126:17: warning: mutation of captured var 'client' in concurrently-executing code
124 |                 self._on(close: c)
125 |                 self.on(close: c)
126 |                 client = nil
    |                 `- warning: mutation of captured var 'client' in concurrently-executing code
127 |             }
128 |         }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:132:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
133 |             self?._on(ping: client)
134 |             self?.on(ping: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: reference to captured var 'client' in concurrently-executing code
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:139:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
140 |             self?._on(pong: client)
141 |             self?.on(pong: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: reference to captured var 'client' in concurrently-executing code
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:147:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
145 |             guard
146 |                 let client = client,
147 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
148 |             else { return }
149 |             guard self.exchangeMode != .binary else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: reference to captured var 'client' in concurrently-executing code
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
161 |                 let self = self
162 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:161:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
159 |             guard
160 |                 let client = client,
161 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
162 |             else { return }
163 |             guard self.exchangeMode != .text else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: reference to captured var 'client' in concurrently-executing code
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
161 |                 let self = self
162 |             else { return }
[2232/2241] Compiling WS Broadcastable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:3:30: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  1 | import Vapor
  2 |
  3 | public protocol AnyObserver: class, Broadcastable, CustomStringConvertible, Disconnectable, Sendable, Loggable {
    |                              `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  4 |     var key: String { get }
  5 |     var path: String { get }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:130:12: warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
128 |         }
129 |
130 |         ws.onPing { [weak self] _ in
    |            `- warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:137:12: warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
135 |         }
136 |
137 |         ws.onPong { [weak self] _ in
    |            `- warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:103:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
101 |
102 |         self.application.ws.knownEventLoop.submit { [weak self] in
103 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: mutation of captured var 'client' in concurrently-executing code
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: mutation of captured var 'client' in concurrently-executing code
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:110:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
108 |             guard
109 |                 let client = client,
110 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
111 |             else { return }
112 |             self._on(open: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: reference to captured var 'client' in concurrently-executing code
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:118:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
116 |
117 |         ws.onClose.whenComplete { [weak self] _ in
118 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:17: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                 `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:50: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                                                  `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: reference to captured var 'client' in concurrently-executing code
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: reference to captured var 'client' in concurrently-executing code
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:126:17: warning: mutation of captured var 'client' in concurrently-executing code
124 |                 self._on(close: c)
125 |                 self.on(close: c)
126 |                 client = nil
    |                 `- warning: mutation of captured var 'client' in concurrently-executing code
127 |             }
128 |         }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:132:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
133 |             self?._on(ping: client)
134 |             self?.on(ping: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: reference to captured var 'client' in concurrently-executing code
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:139:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
140 |             self?._on(pong: client)
141 |             self?.on(pong: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: reference to captured var 'client' in concurrently-executing code
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:147:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
145 |             guard
146 |                 let client = client,
147 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
148 |             else { return }
149 |             guard self.exchangeMode != .binary else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: reference to captured var 'client' in concurrently-executing code
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
161 |                 let self = self
162 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:161:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
159 |             guard
160 |                 let client = client,
161 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
162 |             else { return }
163 |             guard self.exchangeMode != .text else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: reference to captured var 'client' in concurrently-executing code
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
161 |                 let self = self
162 |             else { return }
[2233/2241] Compiling WS Declarativable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:3:30: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  1 | import Vapor
  2 |
  3 | public protocol AnyObserver: class, Broadcastable, CustomStringConvertible, Disconnectable, Sendable, Loggable {
    |                              `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  4 |     var key: String { get }
  5 |     var path: String { get }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:130:12: warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
128 |         }
129 |
130 |         ws.onPing { [weak self] _ in
    |            `- warning: 'onPing' is deprecated: Please use `onPing { socket, data in /* … */ }` with the additional `data` parameter.
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:137:12: warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
135 |         }
136 |
137 |         ws.onPong { [weak self] _ in
    |            `- warning: 'onPong' is deprecated: Please use `onPong { socket, data in /* … */ }` with the additional `data` parameter.
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:103:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
101 |
102 |         self.application.ws.knownEventLoop.submit { [weak self] in
103 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:105:13: warning: mutation of captured var 'client' in concurrently-executing code
103 |             guard let self = self else { return }
104 |             let c = Client(self, req, ws, logger: self.logger)
105 |             client = c
    |             `- warning: mutation of captured var 'client' in concurrently-executing code
106 |             self._clients.append(c)
107 |         }.whenComplete { [weak self] _ in
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:110:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
108 |             guard
109 |                 let client = client,
110 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
111 |             else { return }
112 |             self._on(open: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:109:30: warning: reference to captured var 'client' in concurrently-executing code
107 |         }.whenComplete { [weak self] _ in
108 |             guard
109 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
110 |                 let self = self
111 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:118:30: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
116 |
117 |         ws.onClose.whenComplete { [weak self] _ in
118 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:17: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                 `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: capture of 'client' with non-sendable type 'Client?' in an isolated closure; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:120:58: warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
118 |             guard let self = self else { return }
119 |             self.application.ws.knownEventLoop.submit { [weak self] in
120 |                 self?._clients.removeAll(where: { $0 === client })
    |                                                          `- warning: reference to captured var 'client' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:50: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                                                  `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:122:31: warning: reference to captured var 'client' in concurrently-executing code
120 |                 self?._clients.removeAll(where: { $0 === client })
121 |             }.whenComplete { [weak self] _ in
122 |                 guard let c = client, let self = self else { return }
    |                               `- warning: reference to captured var 'client' in concurrently-executing code
123 |                 self.logger.info("[⚡️] 🔴 connection closed \(c.id)")
124 |                 self._on(close: c)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:126:17: warning: mutation of captured var 'client' in concurrently-executing code
124 |                 self._on(close: c)
125 |                 self.on(close: c)
126 |                 client = nil
    |                 `- warning: mutation of captured var 'client' in concurrently-executing code
127 |             }
128 |         }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:132:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
133 |             self?._on(ping: client)
134 |             self?.on(ping: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:131:32: warning: reference to captured var 'client' in concurrently-executing code
129 |
130 |         ws.onPing { [weak self] _ in
131 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
132 |             self?.logger.debug("[⚡️] 🏓 ping \(client.id)")
133 |             self?._on(ping: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:139:13: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
    |             `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
140 |             self?._on(pong: client)
141 |             self?.on(pong: client)
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:138:32: warning: reference to captured var 'client' in concurrently-executing code
136 |
137 |         ws.onPong { [weak self] _ in
138 |             guard let client = client else { return }
    |                                `- warning: reference to captured var 'client' in concurrently-executing code
139 |             self?.logger.debug("[⚡️] 🏓 pong \(client.id)")
140 |             self?._on(pong: client)
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:147:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
145 |             guard
146 |                 let client = client,
147 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
148 |             else { return }
149 |             guard self.exchangeMode != .binary else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:146:30: warning: reference to captured var 'client' in concurrently-executing code
144 |         ws.onText { [weak self] _, text in
145 |             guard
146 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
147 |                 let self = self
148 |             else { return }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: capture of 'client' with non-sendable type 'Client?' in a '@Sendable' closure
161 |                 let self = self
162 |             else { return }
/host/spi-builder-workspace/Sources/WS/Objects/Client.swift:5:7: note: class 'Client' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | class Client: _AnyClient {
   |       `- note: class 'Client' does not conform to the 'Sendable' protocol
 6 |     /// See `AnyClient`
 7 |     public let id: UUID = .init()
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:161:28: warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
159 |             guard
160 |                 let client = client,
161 |                 let self = self
    |                            `- warning: capture of 'self' with non-sendable type 'Self?' in a '@Sendable' closure
162 |             else { return }
163 |             guard self.exchangeMode != .text else {
WS._AnyObserver.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _AnyObserver {
2 | Self : WS._AnyObserver}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/AnyObserver.swift:160:30: warning: reference to captured var 'client' in concurrently-executing code
158 |         ws.onBinary { [weak self] _, byteBuffer in
159 |             guard
160 |                 let client = client,
    |                              `- warning: reference to captured var 'client' in concurrently-executing code
161 |                 let self = self
162 |             else { return }
[2234/2241] Compiling WS Decoder.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Disconnectable.swift:27:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
25 |     func _disconnect() -> EventLoopFuture<Void> {
26 |         eventLoop.future().flatMap {
27 |             self._disconnect(code: .goingAway)
   |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
28 |         }
29 |     }
WS._Disconnectable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Disconnectable {
2 | Self : WS._Disconnectable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
[2235/2241] Compiling WS Delegate.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Disconnectable.swift:27:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
25 |     func _disconnect() -> EventLoopFuture<Void> {
26 |         eventLoop.future().flatMap {
27 |             self._disconnect(code: .goingAway)
   |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
28 |         }
29 |     }
WS._Disconnectable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Disconnectable {
2 | Self : WS._Disconnectable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
[2236/2241] Compiling WS Disconnectable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Disconnectable.swift:27:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
25 |     func _disconnect() -> EventLoopFuture<Void> {
26 |         eventLoop.future().flatMap {
27 |             self._disconnect(code: .goingAway)
   |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
28 |         }
29 |     }
WS._Disconnectable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Disconnectable {
2 | Self : WS._Disconnectable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
[2237/2241] Compiling WS Encoder.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Disconnectable.swift:27:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
25 |     func _disconnect() -> EventLoopFuture<Void> {
26 |         eventLoop.future().flatMap {
27 |             self._disconnect(code: .goingAway)
   |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
28 |         }
29 |     }
WS._Disconnectable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Disconnectable {
2 | Self : WS._Disconnectable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
[2238/2241] Compiling WS Loggable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:42:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 |         /// Send as `text`
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
 44 |                 $0.send(text)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:61:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 59 |         /// Send as `binary`
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
 63 |                 $0.send(bytes)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:62:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 63 |                 $0.send(bytes)
 64 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:84:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 82 |         /// Send as `binary`
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
 86 |                 $0.send(raw: data, opcode: opcode)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:17: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                 `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:32: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 93 |     }
 94 |
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
    |                `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                                `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:99:16: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 97 |             try encoder.encode(model)
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
    |                `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
100 |                 return self.eventLoop.future(data)
101 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:104:19: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
102 |             return self.send(data: data).transform(to: data)
103 |         }.flatMap {
104 |             guard self.exchangeMode != .binary,
    |                   `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
105 |                 let text = String(data: $0, encoding: .utf8) else {
106 |                 return self.eventLoop.future()
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:122:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
120 |     func _sendPing() -> EventLoopFuture<Void> {
121 |         eventLoop.future().map {
122 |             self.sockets.forEach { $0.sendPing() }
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
123 |         }
124 |     }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:131:33: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
128 |
129 | extension EventLoopFuture: Sendable where Value: Sendable {
130 |     public func send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                      `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
131 |         flatMap { $0.send(text: text) }
    |                                 `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
132 |     }
133 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:139:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
136 |     }
137 |
138 |     public func send<Data>(data: Data) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
139 |         flatMap { $0.send(data: data) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:143:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
142 |     public func send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
143 |         flatMap { $0.send(data: data, opcode: opcode) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
144 |     }
145 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:147:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
144 |     }
145 |
146 |     public func send<C>(model: C) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
147 |         flatMap { $0.send(model: model) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:50: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                                  `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:155:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
153 |
154 |     public func send<T>(event: EID<T>) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
155 |         flatMap { $0.send(event: event) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
156 |     }
157 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:50: warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
156 |     }
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                                  `- warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:25:34: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
23 | }
24 |
25 | internal protocol _Subscribable: class, Subscribable {
   |                                  `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
26 |     var eventLoop: EventLoop { get }
27 |     var clients: [_AnyClient] { get }
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:32: warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                                `- warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyClient.swift:5:17: note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | public protocol AnyClient: Broadcastable, Disconnectable, Subscribable, Sendable {
   |                 `- note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 6 |     var id: UUID { get }
 7 |     var application: Application { get }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:21: warning: mutation of captured var 'ids' in concurrently-executing code
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                     `- warning: mutation of captured var 'ids' in concurrently-executing code
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:13: warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
  4 | import NIOWebSocket
  5 |
  6 | public class Broadcaster: Disconnectable, _Disconnectable, Sendable, _Sendable, Subscribable {
    |              `- note: class 'Broadcaster' does not conform to the 'Sendable' protocol
  7 |     let eventLoop: EventLoop
  8 |     var clients: [AnyClient]
    :
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |             `- warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
 97 |         }.transform(to: self)
 98 |     }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:38: warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |                                      `- warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 97 |         }.transform(to: self)
 98 |     }
[2239/2241] Compiling WS Sendable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:42:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 |         /// Send as `text`
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
 44 |                 $0.send(text)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:61:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 59 |         /// Send as `binary`
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
 63 |                 $0.send(bytes)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:62:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 63 |                 $0.send(bytes)
 64 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:84:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 82 |         /// Send as `binary`
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
 86 |                 $0.send(raw: data, opcode: opcode)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:17: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                 `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:32: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 93 |     }
 94 |
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
    |                `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                                `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:99:16: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 97 |             try encoder.encode(model)
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
    |                `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
100 |                 return self.eventLoop.future(data)
101 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:104:19: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
102 |             return self.send(data: data).transform(to: data)
103 |         }.flatMap {
104 |             guard self.exchangeMode != .binary,
    |                   `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
105 |                 let text = String(data: $0, encoding: .utf8) else {
106 |                 return self.eventLoop.future()
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:122:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
120 |     func _sendPing() -> EventLoopFuture<Void> {
121 |         eventLoop.future().map {
122 |             self.sockets.forEach { $0.sendPing() }
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
123 |         }
124 |     }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:131:33: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
128 |
129 | extension EventLoopFuture: Sendable where Value: Sendable {
130 |     public func send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                      `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
131 |         flatMap { $0.send(text: text) }
    |                                 `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
132 |     }
133 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:139:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
136 |     }
137 |
138 |     public func send<Data>(data: Data) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
139 |         flatMap { $0.send(data: data) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:143:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
142 |     public func send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
143 |         flatMap { $0.send(data: data, opcode: opcode) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
144 |     }
145 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:147:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
144 |     }
145 |
146 |     public func send<C>(model: C) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
147 |         flatMap { $0.send(model: model) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:50: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                                  `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:155:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
153 |
154 |     public func send<T>(event: EID<T>) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
155 |         flatMap { $0.send(event: event) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
156 |     }
157 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:50: warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
156 |     }
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                                  `- warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:25:34: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
23 | }
24 |
25 | internal protocol _Subscribable: class, Subscribable {
   |                                  `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
26 |     var eventLoop: EventLoop { get }
27 |     var clients: [_AnyClient] { get }
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:32: warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                                `- warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyClient.swift:5:17: note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | public protocol AnyClient: Broadcastable, Disconnectable, Subscribable, Sendable {
   |                 `- note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 6 |     var id: UUID { get }
 7 |     var application: Application { get }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:21: warning: mutation of captured var 'ids' in concurrently-executing code
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                     `- warning: mutation of captured var 'ids' in concurrently-executing code
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:13: warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
  4 | import NIOWebSocket
  5 |
  6 | public class Broadcaster: Disconnectable, _Disconnectable, Sendable, _Sendable, Subscribable {
    |              `- note: class 'Broadcaster' does not conform to the 'Sendable' protocol
  7 |     let eventLoop: EventLoop
  8 |     var clients: [AnyClient]
    :
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |             `- warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
 97 |         }.transform(to: self)
 98 |     }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:38: warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |                                      `- warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 97 |         }.transform(to: self)
 98 |     }
[2240/2241] Compiling WS Subscribable.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:42:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 |         /// Send as `text`
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
 44 |                 $0.send(text)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:61:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 59 |         /// Send as `binary`
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
 63 |                 $0.send(bytes)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:62:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 63 |                 $0.send(bytes)
 64 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:84:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 82 |         /// Send as `binary`
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
 86 |                 $0.send(raw: data, opcode: opcode)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:17: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                 `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:32: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 93 |     }
 94 |
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
    |                `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                                `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:99:16: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 97 |             try encoder.encode(model)
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
    |                `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
100 |                 return self.eventLoop.future(data)
101 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:104:19: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
102 |             return self.send(data: data).transform(to: data)
103 |         }.flatMap {
104 |             guard self.exchangeMode != .binary,
    |                   `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
105 |                 let text = String(data: $0, encoding: .utf8) else {
106 |                 return self.eventLoop.future()
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:122:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
120 |     func _sendPing() -> EventLoopFuture<Void> {
121 |         eventLoop.future().map {
122 |             self.sockets.forEach { $0.sendPing() }
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
123 |         }
124 |     }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:131:33: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
128 |
129 | extension EventLoopFuture: Sendable where Value: Sendable {
130 |     public func send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                      `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
131 |         flatMap { $0.send(text: text) }
    |                                 `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
132 |     }
133 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:139:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
136 |     }
137 |
138 |     public func send<Data>(data: Data) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
139 |         flatMap { $0.send(data: data) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:143:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
142 |     public func send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
143 |         flatMap { $0.send(data: data, opcode: opcode) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
144 |     }
145 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:147:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
144 |     }
145 |
146 |     public func send<C>(model: C) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
147 |         flatMap { $0.send(model: model) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:50: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                                  `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:155:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
153 |
154 |     public func send<T>(event: EID<T>) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
155 |         flatMap { $0.send(event: event) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
156 |     }
157 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:50: warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
156 |     }
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                                  `- warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:25:34: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
23 | }
24 |
25 | internal protocol _Subscribable: class, Subscribable {
   |                                  `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
26 |     var eventLoop: EventLoop { get }
27 |     var clients: [_AnyClient] { get }
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:32: warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                                `- warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyClient.swift:5:17: note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | public protocol AnyClient: Broadcastable, Disconnectable, Subscribable, Sendable {
   |                 `- note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 6 |     var id: UUID { get }
 7 |     var application: Application { get }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:21: warning: mutation of captured var 'ids' in concurrently-executing code
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                     `- warning: mutation of captured var 'ids' in concurrently-executing code
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:13: warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
  4 | import NIOWebSocket
  5 |
  6 | public class Broadcaster: Disconnectable, _Disconnectable, Sendable, _Sendable, Subscribable {
    |              `- note: class 'Broadcaster' does not conform to the 'Sendable' protocol
  7 |     let eventLoop: EventLoop
  8 |     var clients: [AnyClient]
    :
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |             `- warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
 97 |         }.transform(to: self)
 98 |     }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:38: warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |                                      `- warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 97 |         }.transform(to: self)
 98 |     }
[2241/2241] Compiling WS Broadcaster.swift
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:42:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 |         /// Send as `text`
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
 44 |                 $0.send(text)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: capture of 'text' with non-sendable type 'S' in an isolated closure; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:43:58: warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 32 |
 33 | extension _Sendable {
 34 |     func _send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
 35 |         /// Send as `binary` instead
 36 |         if exchangeMode == .binary {
    :
 41 |         return eventLoop.future().map {
 42 |             self.sockets.forEach {
 43 |                 self.logger.debug("[⚡️] 📤 text: \(text)")
    |                                                  `- warning: implicit capture of 'text' requires that 'S' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 44 |                 $0.send(text)
 45 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:61:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 59 |         /// Send as `binary`
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
 63 |                 $0.send(bytes)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:62:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 60 |         return eventLoop.future().map {
 61 |             self.sockets.forEach {
 62 |                 self.logger.debug("[⚡️] 📤 bytes: \(bytes.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 63 |                 $0.send(bytes)
 64 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:84:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 82 |         /// Send as `binary`
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
 86 |                 $0.send(raw: data, opcode: opcode)
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: capture of 'data' with non-sendable type 'Data' in an isolated closure; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:85:58: warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 70 |     }
 71 |
 72 |     func _send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data: DataProtocol {
    |                `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
 73 |         /// Send as `text` instead
 74 |         if exchangeMode == .text {
    :
 83 |         return eventLoop.future().map {
 84 |             self.sockets.forEach {
 85 |                 self.logger.debug("[⚡️] 📤 data: \(data.count)")
    |                                                  `- warning: implicit capture of 'data' requires that 'Data' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 86 |                 $0.send(raw: data, opcode: opcode)
 87 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:17: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                 `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:97:32: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 93 |     }
 94 |
 95 |     func _send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C: Encodable {
    |                `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
 96 |         eventLoop.future().flatMapThrowing {
 97 |             try encoder.encode(model)
    |                                `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:99:16: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 97 |             try encoder.encode(model)
 98 |         }.flatMap { data -> EventLoopFuture<Data> in
 99 |             if self.exchangeMode == .text {
    |                `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
100 |                 return self.eventLoop.future(data)
101 |             }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:104:19: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
102 |             return self.send(data: data).transform(to: data)
103 |         }.flatMap {
104 |             guard self.exchangeMode != .binary,
    |                   `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
105 |                 let text = String(data: $0, encoding: .utf8) else {
106 |                 return self.eventLoop.future()
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:122:13: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
120 |     func _sendPing() -> EventLoopFuture<Void> {
121 |         eventLoop.future().map {
122 |             self.sockets.forEach { $0.sendPing() }
    |             `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
123 |         }
124 |     }
WS._Sendable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Sendable {
2 | Self : WS._Sendable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:131:33: warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
128 |
129 | extension EventLoopFuture: Sendable where Value: Sendable {
130 |     public func send<S>(text: S) -> EventLoopFuture<Void> where S : Collection, S.Element == Character {
    |                      `- note: consider making generic parameter 'S' conform to the 'Sendable' protocol
131 |         flatMap { $0.send(text: text) }
    |                                 `- warning: capture of 'text' with non-sendable type 'S' in a '@Sendable' closure
132 |     }
133 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:139:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
136 |     }
137 |
138 |     public func send<Data>(data: Data) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
139 |         flatMap { $0.send(data: data) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:143:33: warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
140 |     }
141 |
142 |     public func send<Data>(data: Data, opcode: WebSocketOpcode) -> EventLoopFuture<Void> where Data : DataProtocol {
    |                      `- note: consider making generic parameter 'Data' conform to the 'Sendable' protocol
143 |         flatMap { $0.send(data: data, opcode: opcode) }
    |                                 `- warning: capture of 'data' with non-sendable type 'Data' in a '@Sendable' closure
144 |     }
145 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:147:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
144 |     }
145 |
146 |     public func send<C>(model: C) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
147 |         flatMap { $0.send(model: model) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:34: warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
148 |     }
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
    |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                  `- warning: capture of 'model' with non-sendable type 'C' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:151:50: warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
149 |
150 |     public func send<C>(model: C, encoder: Encoder) -> EventLoopFuture<Void> where C : Encodable {
151 |         flatMap { $0.send(model: model, encoder: encoder) }
    |                                                  `- warning: capture of 'encoder' with non-sendable type 'any Encoder' in a '@Sendable' closure
152 |     }
153 |
/host/spi-builder-workspace/Sources/WS/Protocols/Encoder.swift:3:17: note: protocol 'Encoder' does not conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public protocol Encoder {
  |                 `- note: protocol 'Encoder' does not conform to the 'Sendable' protocol
4 |     func encode<T>(_ value: T) throws -> Data where T : Encodable
5 | }
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:155:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
153 |
154 |     public func send<T>(event: EID<T>) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
155 |         flatMap { $0.send(event: event) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
156 |     }
157 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:34: warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                  `- warning: capture of 'event' with non-sendable type 'EID<T>' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Models/EID.swift:11:15: note: consider making generic struct 'EID' conform to the 'Sendable' protocol
 9 | /// }
10 | /// ```
11 | public struct EID<P: Codable>: Equatable, Hashable, CustomStringConvertible, ExpressibleByStringLiteral {
   |               `- note: consider making generic struct 'EID' conform to the 'Sendable' protocol
12 |     /// The unique id.
13 |     public let id: String
/host/spi-builder-workspace/Sources/WS/Protocols/Sendable.swift:159:50: warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
156 |     }
157 |
158 |     public func send<T>(event: EID<T>, payload: T?) -> EventLoopFuture<Void> where T : Decodable, T : Encodable {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
159 |         flatMap { $0.send(event: event, payload: payload) }
    |                                                  `- warning: capture of 'payload' with non-sendable type 'T?' in a '@Sendable' closure
160 |     }
161 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:25:34: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
23 | }
24 |
25 | internal protocol _Subscribable: class, Subscribable {
   |                                  `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
26 |     var eventLoop: EventLoop { get }
27 |     var clients: [_AnyClient] { get }
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:38:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
36 |         self.eventLoop.submit {
37 |             channels.forEach { channel in
38 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
39 |                     $0.channels.insert(channel)
40 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Protocols/Subscribable.swift:52:17: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
50 |         self.eventLoop.submit {
51 |             channels.forEach { channel in
52 |                 self.clients.forEach {
   |                 `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
53 |                     $0.channels.remove(channel)
54 |                 }
WS._Subscribable.Self:2:1: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
1 | protocol _Subscribable {
2 | Self : WS._Subscribable}
  | `- note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
3 |
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:32: warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                                `- warning: capture of 'client' with non-sendable type 'any AnyClient' in a '@Sendable' closure
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Protocols/AnyClient.swift:5:17: note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 3 | import NIOWebSocket
 4 |
 5 | public protocol AnyClient: Broadcastable, Disconnectable, Subscribable, Sendable {
   |                 `- note: protocol 'AnyClient' does not conform to the 'Sendable' protocol
 6 |     var id: UUID { get }
 7 |     var application: Application { get }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:92:21: warning: mutation of captured var 'ids' in concurrently-executing code
 90 |             filter(client).map { leave in
 91 |                 if !leave {
 92 |                     ids.insert(client.id)
    |                     `- warning: mutation of captured var 'ids' in concurrently-executing code
 93 |                 }
 94 |             }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:13: warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
  4 | import NIOWebSocket
  5 |
  6 | public class Broadcaster: Disconnectable, _Disconnectable, Sendable, _Sendable, Subscribable {
    |              `- note: class 'Broadcaster' does not conform to the 'Sendable' protocol
  7 |     let eventLoop: EventLoop
  8 |     var clients: [AnyClient]
    :
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |             `- warning: capture of 'self' with non-sendable type 'Broadcaster' in a '@Sendable' closure
 97 |         }.transform(to: self)
 98 |     }
/host/spi-builder-workspace/Sources/WS/Utilities/Broadcaster.swift:96:38: warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 94 |             }
 95 |         }.flatten(on: eventLoop).map {
 96 |             self.clients.removeAll { ids.contains($0.id) }
    |                                      `- warning: reference to captured var 'ids' in concurrently-executing code; this is an error in the Swift 6 language mode
 97 |         }.transform(to: self)
 98 |     }
Build complete! (360.64s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "vapor",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/vapor.git"
    },
    {
      "identity" : "websocket-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/vapor/websocket-kit.git"
    }
  ],
  "manifest_display_name" : "AwesomeWS",
  "name" : "AwesomeWS",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "WS",
      "targets" : [
        "WS"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "WSTests",
      "module_type" : "SwiftTarget",
      "name" : "WSTests",
      "path" : "Tests/WSTests",
      "product_dependencies" : [
        "WebSocketKit"
      ],
      "sources" : [
        "WSTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "WS"
      ],
      "type" : "test"
    },
    {
      "c99name" : "WS",
      "module_type" : "SwiftTarget",
      "name" : "WS",
      "path" : "Sources/WS",
      "product_dependencies" : [
        "Vapor",
        "WebSocketKit"
      ],
      "product_memberships" : [
        "WS"
      ],
      "sources" : [
        "Enums/ExchangeMode.swift",
        "Extensions/Application+Configurator.swift",
        "Extensions/HTTPServerConfiguration+Address.swift",
        "Extensions/Request+Observer.swift",
        "Models/Configurator.swift",
        "Models/EID.swift",
        "Models/Event.swift",
        "Models/Nothing.swift",
        "Models/OriginalRequest.swift",
        "Models/WSID.swift",
        "Objects/Client.swift",
        "Observers/BaseObserver.swift",
        "Observers/BindableObserver.swift",
        "Observers/ClassicObserver.swift",
        "Observers/DeclarativeObserver.swift",
        "Protocols/AnyClient.swift",
        "Protocols/AnyObserver.swift",
        "Protocols/Bindable.swift",
        "Protocols/Broadcastable.swift",
        "Protocols/Declarativable.swift",
        "Protocols/Decoder.swift",
        "Protocols/Delegate.swift",
        "Protocols/Disconnectable.swift",
        "Protocols/Encoder.swift",
        "Protocols/Loggable.swift",
        "Protocols/Sendable.swift",
        "Protocols/Subscribable.swift",
        "Utilities/Broadcaster.swift",
        "Utilities/DefaultDateFormatter.swift",
        "Utilities/EndpointBuilder.swift",
        "Utilities/Storage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Done.