The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Citadel, reference main (66be8c), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 19:53:02 UTC.

Swift 6 data race errors: 34

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

600 |         let promise = context.eventLoop.makePromise(of: T.self)
601 |         promise.completeWithTask {
602 |             try await perform(file)
    |                               `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
603 |         }
604 |         return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  5 |
  6 | /// Represents a file in the SFTP subsystem.
  7 | public protocol SFTPFileHandle {
    |                 `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  8 |     /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
  9 |     func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
[839/845] Compiling Citadel SFTPServerInboundHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:34:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 32 |         guard command.version >= .v3 else {
 33 |             return context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).whenComplete { _ in
 34 |                 context.channel.close(promise: nil)
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 35 |             }
 36 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:56:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
 54 |         let promise = context.eventLoop.makePromise(of: SFTPFileHandle.self)
 55 |         promise.completeWithTask {
 56 |             try await self.delegate.openFile(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 57 |                 command.filePath,
 58 |                 withAttributes: command.attributes,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:65:26: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
 63 |
 64 |         _ = promise.futureResult.map { file -> SFTPMessage in
 65 |             let handle = self.currentHandleID
    |                          `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
 66 |             self.files[handle] = file
 67 |             self.currentHandleID &+= 1
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:76:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 74 |             )
 75 |         }.flatMap { handle in
 76 |             context.writeAndFlush(NIOAny(handle))
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 77 |         }
 78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:88:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 86 |         if let file = files[id] {
 87 |             previousTask = previousTask.flatMap {
 88 |                 let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
    |                               `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 89 |                 promise.completeWithTask {
 90 |                     try await file.close()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:90:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure
 88 |                 let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
 89 |                 promise.completeWithTask {
 90 |                     try await file.close()
    |                               `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure
 91 |                 }
 92 |                 self.files[id] = nil
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  5 |
  6 | /// Represents a file in the SFTP subsystem.
  7 | public protocol SFTPFileHandle {
    |                 `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  8 |     /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
  9 |     func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:92:17: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
 90 |                     try await file.close()
 91 |                 }
 92 |                 self.files[id] = nil
    |                 `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
 93 |                 return promise.futureResult.flatMap { status in
 94 |                     context.channel.writeAndFlush(
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:90:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 88 |                 let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
 89 |                 promise.completeWithTask {
 90 |                     try await file.close()
    |                               `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 91 |                 }
 92 |                 self.files[id] = nil
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  5 |
  6 | /// Represents a file in the SFTP subsystem.
  7 | public protocol SFTPFileHandle {
    |                 `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  8 |     /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
  9 |     func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:94:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 92 |                 self.files[id] = nil
 93 |                 return promise.futureResult.flatMap { status in
 94 |                     context.channel.writeAndFlush(
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 95 |                         SFTPMessage.status(
 96 |                             SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:105:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 |                     )
104 |                 }.flatMapError { _ in
105 |                     context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
106 |                         context.channel.close()
107 |                     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:106:25: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
104 |                 }.flatMapError { _ in
105 |                     context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
106 |                         context.channel.close()
    |                         `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
107 |                     }
108 |                 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:115:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
113 |
114 |             previousTask = previousTask.flatMap {
115 |                 context.channel.writeAndFlush(
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
116 |                     SFTPMessage.status(
117 |                         SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:133:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
131 |     func readFile(command: SFTPMessage.ReadFile, context: ChannelHandlerContext) {
132 |         previousTask = previousTask.flatMap {
133 |             self.withFileHandle(command.handle, context: context) { file -> ByteBuffer in
    |             `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
134 |                 try await file.read(at: command.offset, length: command.length)
135 |             }.flatMap { data -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:133:58: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
131 |     func readFile(command: SFTPMessage.ReadFile, context: ChannelHandlerContext) {
132 |         previousTask = previousTask.flatMap {
133 |             self.withFileHandle(command.handle, context: context) { file -> ByteBuffer in
    |                                                          `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
134 |                 try await file.read(at: command.offset, length: command.length)
135 |             }.flatMap { data -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:137:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
135 |             }.flatMap { data -> EventLoopFuture<Void> in
136 |                 if data.readableBytes == 0 {
137 |                     return context.channel.writeAndFlush(
    |                            `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
138 |                         SFTPMessage.status(
139 |                             .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:158:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
156 |                 }
157 |             }.flatMapError { _ in
158 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
159 |                     context.channel.close()
160 |                 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:159:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
157 |             }.flatMapError { _ in
158 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
159 |                     context.channel.close()
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
160 |                 }
161 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:167:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
165 |     func writeFile(command: SFTPMessage.WriteFile, context: ChannelHandlerContext) {
166 |         previousTask = previousTask.flatMap {
167 |             self.withFileHandle(command.handle, context: context) { file -> SFTPStatusCode in
    |             `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
168 |                 try await file.write(command.data, atOffset: command.offset)
169 |             }.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:167:58: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
165 |     func writeFile(command: SFTPMessage.WriteFile, context: ChannelHandlerContext) {
166 |         previousTask = previousTask.flatMap {
167 |             self.withFileHandle(command.handle, context: context) { file -> SFTPStatusCode in
    |                                                          `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
168 |                 try await file.write(command.data, atOffset: command.offset)
169 |             }.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:170:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
168 |                 try await file.write(command.data, atOffset: command.offset)
169 |             }.flatMap { status -> EventLoopFuture<Void> in
170 |                 context.channel.writeAndFlush(
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
171 |                     SFTPMessage.status(
172 |                         SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:181:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
179 |                 )
180 |             }.flatMapError { _ in
181 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
182 |                     context.channel.close()
183 |                 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:182:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
180 |             }.flatMapError { _ in
181 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
182 |                     context.channel.close()
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
183 |                 }
184 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:191:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
189 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
190 |         promise.completeWithTask {
191 |             try await self.delegate.createDirectory(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
192 |                 command.filePath,
193 |                 withAttributes: command.attributes,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:199:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
197 |
198 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
199 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
200 |                 SFTPMessage.status(
201 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:210:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
208 |             )
209 |         }.flatMapError { _ in
210 |             context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
211 |                 context.channel.close()
212 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:211:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
209 |         }.flatMapError { _ in
210 |             context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
211 |                 context.channel.close()
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
212 |             }
213 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:219:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
217 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
218 |         promise.completeWithTask {
219 |             try await self.delegate.removeDirectory(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
220 |                 command.filePath,
221 |                 context: self.makeContext()
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:226:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
224 |
225 |         _ =  promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
226 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
227 |                 SFTPMessage.status(
228 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:237:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
235 |             )
236 |         }.flatMapError { _ in
237 |             context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
238 |                 context.channel.close()
239 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:238:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
236 |         }.flatMapError { _ in
237 |             context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
238 |                 context.channel.close()
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
239 |             }
240 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:246:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
244 |         let promise = context.eventLoop.makePromise(of: SFTPFileAttributes.self)
245 |         promise.completeWithTask {
246 |             try await self.delegate.fileAttributes(atPath: command.path, context: self.makeContext())
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
247 |         }
248 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:250:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
248 |
249 |         _ = promise.futureResult.flatMap { attributes -> EventLoopFuture<Void> in
250 |             context.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
251 |                 NIOAny(SFTPMessage.attributes(
252 |                     .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:264:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
262 |         let promise = context.eventLoop.makePromise(of: SFTPFileAttributes.self)
263 |         promise.completeWithTask {
264 |             try await self.delegate.fileAttributes(atPath: command.path, context: self.makeContext())
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
265 |         }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:268:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
266 |
267 |         _ = promise.futureResult.flatMap { attributes -> EventLoopFuture<Void> in
268 |             context.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
269 |                 NIOAny(SFTPMessage.attributes(
270 |                     .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:282:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
280 |         let promise = context.eventLoop.makePromise(of: [SFTPPathComponent].self)
281 |         promise.completeWithTask {
282 |             try await self.delegate.realPath(for: command.path, context: self.makeContext())
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 |         }
284 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:286:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
284 |
285 |         _ = promise.futureResult.flatMap { components -> EventLoopFuture<Void> in
286 |             context.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
287 |                 NIOAny(SFTPMessage.name(
288 |                     .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:300:36: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
298 |         let promise = context.eventLoop.makePromise(of: (SFTPDirectoryHandle, SFTPDirectoryHandleIterator).self)
299 |         promise.completeWithTask {
300 |             let handle = try await self.delegate.openDirectory(atPath: command.handle, context: self.makeContext())
    |                                    `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
301 |             let files = try await handle.listFiles(context: self.makeContext())
302 |             let iterator = SFTPDirectoryHandleIterator(listing: files)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:307:26: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
305 |
306 |     _ = promise.futureResult.map { (directory, listing) -> SFTPMessage in
307 |             let handle = self.currentHandleID
    |                          `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
308 |             self.directories[handle] = directory
309 |             self.directoryListing[handle] = listing
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:319:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
317 |             )
318 |         }.flatMap { handle in
319 |             context.writeAndFlush(NIOAny(handle))
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
320 |         }.flatMapErrorThrowing { _ in }
321 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:355:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
353 |         self.directoryListing[id] = listing
354 |         _ = result.flatMapError { error -> EventLoopFuture<Void> in
355 |             self.logger.error("\(error)")
    |             `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
356 |             return context.channel.writeAndFlush(
357 |                 SFTPMessage.status(
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:356:20: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
354 |         _ = result.flatMapError { error -> EventLoopFuture<Void> in
355 |             self.logger.error("\(error)")
356 |             return context.channel.writeAndFlush(
    |                    `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
357 |                 SFTPMessage.status(
358 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:373:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
371 |             try await file.readFileAttributes()
372 |         }.flatMap { attributes -> EventLoopFuture<Void> in
373 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
374 |                 SFTPMessage.attributes(
375 |                     .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:382:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
380 |             )
381 |         }.flatMapError { _ -> EventLoopFuture<Void> in
382 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
383 |                 SFTPMessage.status(
384 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:398:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
396 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
397 |         promise.completeWithTask {
398 |             try await self.delegate.removeFile(command.filename, context: self.makeContext())
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
399 |         }
400 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:401:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
399 |         }
400 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
401 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
402 |                 SFTPMessage.status(
403 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:418:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
416 |             try await handle.setFileAttributes(to: command.attributes)
417 |         }.flatMap { () -> EventLoopFuture<Void> in
418 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
419 |                 SFTPMessage.status(
420 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:429:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
427 |             )
428 |         }.flatMapError { _ -> EventLoopFuture<Void> in
429 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
430 |                 SFTPMessage.status(
431 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:445:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
443 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
444 |         promise.completeWithTask {
445 |             try await self.delegate.setFileAttributes(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
446 |                 to: command.attributes,
447 |                 atPath: command.path,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:452:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
450 |         }
451 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
452 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
453 |                 SFTPMessage.status(
454 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:468:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
466 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
467 |         promise.completeWithTask {
468 |             try await self.delegate.addSymlink(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
469 |                 linkPath: command.linkPath,
470 |                 targetPath: command.targetPath,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:475:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
473 |         }
474 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
475 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
476 |                 SFTPMessage.status(
477 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:491:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
489 |         let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
490 |         promise.completeWithTask {
491 |             try await self.delegate.rename(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
492 |                 oldPath: command.oldPath,
493 |                 newPath: command.newPath,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:499:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
497 |         }
498 |         _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
499 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
500 |                 SFTPMessage.status(
501 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:515:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
 11 |     typealias InboundIn = SFTPMessage
 12 |
    :
513 |         let promise = context.eventLoop.makePromise(of: [SFTPPathComponent].self)
514 |         promise.completeWithTask {
515 |             try await self.delegate.readSymlink(
    |                       `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
516 |                 atPath: command.path,
517 |                 context: self.makeContext()
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:521:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
519 |         }
520 |         _ = promise.futureResult.flatMap { components -> EventLoopFuture<Void> in
521 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
522 |                 SFTPMessage.name(
523 |                     SFTPMessage.Name(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:530:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
528 |             )
529 |         }.flatMapError { _ -> EventLoopFuture<Void> in
530 |             context.channel.writeAndFlush(
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
531 |                 SFTPMessage.status(
532 |                     SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:586:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
584 |             // Client cannot send these messages
585 |             context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).whenComplete { _ in
586 |                 context.channel.close(promise: nil)
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
587 |             }
588 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:602:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
600 |         let promise = context.eventLoop.makePromise(of: T.self)
601 |         promise.completeWithTask {
602 |             try await perform(file)
    |                               `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
603 |         }
604 |         return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  5 |
  6 | /// Represents a file in the SFTP subsystem.
  7 | public protocol SFTPFileHandle {
    |                 `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
  8 |     /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
  9 |     func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
[840/845] Compiling Citadel Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 38 |     func handlerAdded(context: ChannelHandlerContext) {
 39 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
 40 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 41 |         }
 42 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 57 |             guard let shell = shell, let parent = context.channel.parent else {
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 60 |                     return context.channel.close()
 61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
 60 |                     return context.channel.close()
    |                            `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 61 |                 }
 62 |                 return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 65 |             parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 66 |                 ShellServerSubsystem.setupChannelHanders(
 67 |                     channel: context.channel,
    |                              `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 68 |                     shell: shell,
 69 |                     logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 71 |                 )
 72 |             }.flatMap { () -> EventLoopFuture<Void> in
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
    |                               `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
    |                 `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
 78 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 79 |             }
 80 |         case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 89 |                 parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 90 |                     SFTPServerSubsystem.setupChannelHanders(
 91 |                         channel: context.channel,
    |                                  `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 92 |                         sftp: sftp,
 93 |                         logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 95 |                     )
 96 |                 }.flatMap { () -> EventLoopFuture<Void> in
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
    |                                   `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
102 |                     context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 |                 }
104 |             default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |                                     `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 43 | ///         }
 44 | ///     }
 45 | public struct NIOAny {
    |               `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 46 |     @usableFromInline
 47 |     /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 |         }
101 |
102 |         done.futureResult.whenFailure(context.fireErrorCaught)
    |                                               `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 |     }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 82 |
 83 |                 group.addTask {
 84 |                     for try await message in self.outbound.stream {
    |                                              `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 |             self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 |         }
126 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 |                 streamContinuation.yield(.stderr(stderr))
284 |             case .eof(let error):
285 |                 self.logger.debug("EOF triggered, ending the command stream.")
    |                 `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 |                 if let error {
287 |                     streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
    |                    `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 |     private(set) var session: SSHClientSession
114 |     private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 73 |         done.completeWithTask {
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |                     try await self.delegate.startShell(
    |                               `- note: closure captures non-Sendable 'self'
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- note: closure captures non-Sendable 'shellContext'
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |                 }
 82 |
 83 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 84 |                     for try await message in self.outbound.stream {
    |                                              `- note: closure captures 'self' which is accessible to code in the current task
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
465 |         )
466 |
467 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
468 |             do {
469 |                 let stream = try await executeCommandStream(command, inShell: inShell)
    |                                        `- note: closure captures 'self' which is accessible to code in the current task
470 |                 for try await chunk in stream {
471 |                     switch chunk {
[841/845] Compiling Citadel ShellDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 38 |     func handlerAdded(context: ChannelHandlerContext) {
 39 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
 40 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 41 |         }
 42 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 57 |             guard let shell = shell, let parent = context.channel.parent else {
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 60 |                     return context.channel.close()
 61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
 60 |                     return context.channel.close()
    |                            `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 61 |                 }
 62 |                 return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 65 |             parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 66 |                 ShellServerSubsystem.setupChannelHanders(
 67 |                     channel: context.channel,
    |                              `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 68 |                     shell: shell,
 69 |                     logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 71 |                 )
 72 |             }.flatMap { () -> EventLoopFuture<Void> in
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
    |                               `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
    |                 `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
 78 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 79 |             }
 80 |         case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 89 |                 parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 90 |                     SFTPServerSubsystem.setupChannelHanders(
 91 |                         channel: context.channel,
    |                                  `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 92 |                         sftp: sftp,
 93 |                         logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 95 |                     )
 96 |                 }.flatMap { () -> EventLoopFuture<Void> in
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
    |                                   `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
102 |                     context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 |                 }
104 |             default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |                                     `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 43 | ///         }
 44 | ///     }
 45 | public struct NIOAny {
    |               `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 46 |     @usableFromInline
 47 |     /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 |         }
101 |
102 |         done.futureResult.whenFailure(context.fireErrorCaught)
    |                                               `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 |     }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 82 |
 83 |                 group.addTask {
 84 |                     for try await message in self.outbound.stream {
    |                                              `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 |             self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 |         }
126 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 |                 streamContinuation.yield(.stderr(stderr))
284 |             case .eof(let error):
285 |                 self.logger.debug("EOF triggered, ending the command stream.")
    |                 `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 |                 if let error {
287 |                     streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
    |                    `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 |     private(set) var session: SSHClientSession
114 |     private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 73 |         done.completeWithTask {
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |                     try await self.delegate.startShell(
    |                               `- note: closure captures non-Sendable 'self'
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- note: closure captures non-Sendable 'shellContext'
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |                 }
 82 |
 83 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 84 |                     for try await message in self.outbound.stream {
    |                                              `- note: closure captures 'self' which is accessible to code in the current task
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
465 |         )
466 |
467 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
468 |             do {
469 |                 let stream = try await executeCommandStream(command, inShell: inShell)
    |                                        `- note: closure captures 'self' which is accessible to code in the current task
470 |                 for try await chunk in stream {
471 |                     switch chunk {
[842/845] Compiling Citadel TTY.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 38 |     func handlerAdded(context: ChannelHandlerContext) {
 39 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
 40 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 41 |         }
 42 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 57 |             guard let shell = shell, let parent = context.channel.parent else {
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 60 |                     return context.channel.close()
 61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 58 |                 _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
 59 |                     self.configured.succeed(())
 60 |                     return context.channel.close()
    |                            `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 61 |                 }
 62 |                 return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 65 |             parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 66 |                 ShellServerSubsystem.setupChannelHanders(
 67 |                     channel: context.channel,
    |                              `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 68 |                     shell: shell,
 69 |                     logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 71 |                 )
 72 |             }.flatMap { () -> EventLoopFuture<Void> in
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
    |                               `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 73 |                 let promise = context.eventLoop.makePromise(of: Void.self)
 74 |                 context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 75 |                 self.configured.succeed(())
    |                 `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 76 |                 return promise.futureResult
 77 |             }.whenFailure { _ in
 78 |                 context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                 `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 79 |             }
 80 |         case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 89 |                 parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
 90 |                     SFTPServerSubsystem.setupChannelHanders(
 91 |                         channel: context.channel,
    |                                  `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 92 |                         sftp: sftp,
 93 |                         logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 95 |                     )
 96 |                 }.flatMap { () -> EventLoopFuture<Void> in
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
    |                                   `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | final class SubsystemHandler: ChannelDuplexHandler {
    |             `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
 21 |     typealias InboundIn = SSHChannelData
 22 |     typealias InboundOut = SSHChannelData
    :
 97 |                     let promise = context.eventLoop.makePromise(of: Void.self)
 98 |                     context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
 99 |                     self.configured.succeed(())
    |                     `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 |                     return promise.futureResult
101 |                 }.whenFailure { _ in
102 |                     context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
    |                     `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 |                 }
104 |             default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 |     func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 |         configured.futureResult.whenSuccess {
114 |             context.fireChannelRead(data)
    |                                     `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 |         }
116 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 43 | ///         }
 44 | ///     }
 45 | public struct NIOAny {
    |               `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
 46 |     @usableFromInline
 47 |     /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 |         }
101 |
102 |         done.futureResult.whenFailure(context.fireErrorCaught)
    |                                               `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 |     }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
 76 |                     try await self.delegate.startShell(
    |                               `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 33 | }
 34 |
 35 | public struct SSHShellContext {
    |               `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
 36 |     public struct WindowSize {
 37 |         public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
 82 |
 83 |                 group.addTask {
 84 |                     for try await message in self.outbound.stream {
    |                                              `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 |             self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 |             context.fireErrorCaught(error)
    |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 |         }
126 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 |     // visible for ChannelPipeline to modify
1458 |     fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 |                 streamContinuation.yield(.stderr(stderr))
284 |             case .eof(let error):
285 |                 self.logger.debug("EOF triggered, ending the command stream.")
    |                 `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 |                 if let error {
287 |                     streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
    |                    `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 |     private(set) var session: SSHClientSession
114 |     private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 73 |         done.completeWithTask {
 74 |             try await withThrowingTaskGroup(of: Void.self) { group in
 75 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |                     try await self.delegate.startShell(
    |                               `- note: closure captures non-Sendable 'self'
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
 79 |                         context: shellContext
    |                                  `- note: closure captures non-Sendable 'shellContext'
 80 |                     )
 81 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |                 }
 82 |
 83 |                 group.addTask {
    |                               `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 84 |                     for try await message in self.outbound.stream {
    |                                              `- note: closure captures 'self' which is accessible to code in the current task
 85 |                         switch message.event {
 86 |                         case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
465 |         )
466 |
467 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
468 |             do {
469 |                 let stream = try await executeCommandStream(command, inShell: inShell)
    |                                        `- note: closure captures 'self' which is accessible to code in the current task
470 |                 for try await chunk in stream {
471 |                     switch chunk {
[843/852] Compiling CitadelServerExample Terminal.swift
[844/852] Compiling CitadelServerExample HostKeyFile.swift
[845/852] Compiling CitadelServerExample Extensions.swift
[846/852] Compiling CitadelServerExample Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:24:42: warning: non-sendable result type 'SSHServer' cannot be sent from nonisolated context in call to static method 'host(host:port:hostKeys:algorithms:protocolOptions:logger:authenticationDelegate:group:)'; this is an error in the Swift 6 language mode
22 |         }
23 |
24 |         let server = try await SSHServer.host(
   |                                          `- warning: non-sendable result type 'SSHServer' cannot be sent from nonisolated context in call to static method 'host(host:port:hostKeys:algorithms:protocolOptions:logger:authenticationDelegate:group:)'; this is an error in the Swift 6 language mode
25 |             host: "localhost",
26 |             port: 2323,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:186:20: note: class 'SSHServer' does not conform to the 'Sendable' protocol
184 | /// The server can be closed using the `close()` method.
185 | /// - Note: This class is not thread safe.
186 | public final class SSHServer {
    |                    `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
187 |     let channel: Channel
188 |     let delegate: CitadelServerDelegate
/Users/admin/builder/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Citadel'
 1 | import Citadel
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Citadel'
 2 | import Crypto
 3 | import Foundation
[847/852] Compiling CitadelServerExample EchoShell.swift
[848/852] Compiling CitadelServerExample BasicCommands.swift
[849/852] Emitting module CitadelServerExample
[849/852] Write Objects.LinkFileList
[850/852] Linking CitadelServerExample
[851/852] Applying CitadelServerExample
Build complete! (25.30s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-nio-ssh",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.2",
            "upper_bound" : "0.4.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Joannis/swift-nio-ssh.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "bigint",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "5.2.0",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/attaswift/BigInt.git"
    },
    {
      "identity" : "swift-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.1.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-crypto.git"
    },
    {
      "identity" : "colorizeswift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/mtynior/ColorizeSwift.git"
    }
  ],
  "manifest_display_name" : "Citadel",
  "name" : "Citadel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "Citadel",
      "targets" : [
        "Citadel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "CitadelServerExample",
      "targets" : [
        "CitadelServerExample"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CitadelTests",
      "module_type" : "SwiftTarget",
      "name" : "CitadelTests",
      "path" : "Tests/CitadelTests",
      "product_dependencies" : [
        "NIOSSH",
        "BigInt",
        "Logging"
      ],
      "sources" : [
        "Citadel2Tests.swift",
        "EndToEndTests.swift",
        "KeyTests.swift"
      ],
      "target_dependencies" : [
        "Citadel"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CitadelServerExample",
      "module_type" : "SwiftTarget",
      "name" : "CitadelServerExample",
      "path" : "Sources/CitadelServerExample",
      "product_dependencies" : [
        "ColorizeSwift"
      ],
      "product_memberships" : [
        "CitadelServerExample"
      ],
      "sources" : [
        "EchoShell/BasicCommands.swift",
        "EchoShell/EchoShell.swift",
        "EchoShell/Extensions.swift",
        "EchoShell/Terminal.swift",
        "HostKeyFile.swift",
        "Server.swift"
      ],
      "target_dependencies" : [
        "Citadel"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Citadel",
      "module_type" : "SwiftTarget",
      "name" : "Citadel",
      "path" : "Sources/Citadel",
      "product_dependencies" : [
        "NIOSSH",
        "Crypto",
        "_CryptoExtras",
        "BigInt",
        "Logging"
      ],
      "product_memberships" : [
        "Citadel",
        "CitadelServerExample"
      ],
      "sources" : [
        "Algorithms/AES.swift",
        "Algorithms/DH-Helpers.swift",
        "Algorithms/DiffieHellmanGroup14Sha1.swift",
        "Algorithms/DiffieHellmanGroup14Sha256.swift",
        "Algorithms/RSA.swift",
        "BCrypt.swift",
        "ByteBufferHelpers.swift",
        "ChannelUnwrapper.swift",
        "Client.swift",
        "ClientSession.swift",
        "DirectTCPIP/Client/DirectTCPIP+Client.swift",
        "DirectTCPIP/Server/DirectTCPIP+Server.swift",
        "Errors.swift",
        "Exec/Client/ExecClient.swift",
        "Exec/Server/ExecDelegate.swift",
        "Exec/Server/ExecHandler.swift",
        "NIOGlueHandler.swift",
        "OpenSSHKey.swift",
        "SFTP/Client/SFTPClient.swift",
        "SFTP/Client/SFTPClientInboundHandler.swift",
        "SFTP/Client/SFTPFile.swift",
        "SFTP/SFTPBasicEnums.swift",
        "SFTP/SFTPFileFlags.swift",
        "SFTP/SFTPMessage.swift",
        "SFTP/SFTPMessageParser.swift",
        "SFTP/SFTPSerializer.swift",
        "SFTP/Server/SFTPServer.swift",
        "SFTP/Server/SFTPServerInboundHandler.swift",
        "SSHAuthenticationMethod.swift",
        "SSHCert.swift",
        "SSHConnectionPoolSettings.swift",
        "Server.swift",
        "Shell/Server/ShellDelegate.swift",
        "TTY/Client/TTY.swift"
      ],
      "target_dependencies" : [
        "CCitadelBcrypt"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CCitadelBcrypt",
      "module_type" : "ClangTarget",
      "name" : "CCitadelBcrypt",
      "path" : "Sources/CCitadelBcrypt",
      "product_memberships" : [
        "Citadel",
        "CitadelServerExample"
      ],
      "sources" : [
        "bcrypt-kdf.c",
        "bcrypt.c",
        "blf.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/orlandos-nl/citadel/main
Repository:               orlandos-nl/Citadel
Swift version used:       6.1
Target:                   Citadel
Extracting symbol information for 'Citadel'...
Finished extracting symbol information for 'Citadel'. (13.57s)
Building documentation for 'Citadel'...
Finished building documentation for 'Citadel' (0.49s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/orlandos-nl/citadel/main
Updating https://github.com/Joannis/swift-nio-ssh.git
Updating https://github.com/attaswift/BigInt.git
Updating https://github.com/apple/swift-atomics.git
Updating https://github.com/apple/swift-nio.git
Updating https://github.com/apple/swift-system.git
Updating https://github.com/apple/swift-log.git
Updating https://github.com/apple/swift-crypto.git
Updated https://github.com/apple/swift-atomics.git (0.43s)
Updating https://github.com/mtynior/ColorizeSwift.git
Updated https://github.com/Joannis/swift-nio-ssh.git (0.48s)
Updating https://github.com/apple/swift-collections.git
Updated https://github.com/attaswift/BigInt.git (0.53s)
Updated https://github.com/apple/swift-crypto.git (0.53s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Updated https://github.com/apple/swift-nio.git (0.80s)
Updated https://github.com/apple/swift-log.git (0.80s)
Updated https://github.com/apple/swift-system.git (0.80s)
Updated https://github.com/mtynior/ColorizeSwift.git (0.41s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.46s)
Computing version for https://github.com/mtynior/ColorizeSwift.git
Updated https://github.com/apple/swift-collections.git (0.54s)
Computed https://github.com/mtynior/ColorizeSwift.git at 1.6.0 (1.66s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 2.0.5 (0.73s)
Computing version for https://github.com/attaswift/BigInt.git
Computed https://github.com/attaswift/BigInt.git at 5.3.0 (0.82s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.61s)
Computing version for https://github.com/Joannis/swift-nio-ssh.git
Computed https://github.com/Joannis/swift-nio-ssh.git at 0.3.2 (0.60s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.47s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.65.0 (0.53s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.2.1 (0.56s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.0 (0.64s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (0.55s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.73s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.40s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/7] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit Identifier.swift
[7/53] Compiling SymbolKit KindIdentifier.swift
[8/53] Compiling SymbolKit Location.swift
[9/53] Compiling SymbolKit Mutability.swift
[10/57] Compiling SymbolKit Mixin+Equals.swift
[11/57] Compiling SymbolKit Mixin+Hash.swift
[12/57] Compiling SymbolKit Mixin.swift
[13/57] Compiling SymbolKit LineList.swift
[14/57] Compiling SymbolKit Position.swift
[15/57] Compiling SymbolKit SemanticVersion.swift
[16/57] Compiling SymbolKit AccessControl.swift
[17/57] Compiling SymbolKit Availability.swift
[18/57] Compiling SymbolKit AvailabilityItem.swift
[19/57] Compiling SymbolKit Domain.swift
[20/57] Emitting module SymbolKit
[21/57] Compiling SymbolKit DeclarationFragments.swift
[22/57] Compiling SymbolKit Fragment.swift
[23/57] Compiling SymbolKit FragmentKind.swift
[24/57] Compiling SymbolKit FunctionParameter.swift
[25/57] Compiling SymbolKit FunctionSignature.swift
[26/57] Compiling SymbolKit Names.swift
[27/57] Compiling SymbolKit SPI.swift
[28/57] Compiling SymbolKit Snippet.swift
[29/57] Compiling SymbolKit Extension.swift
[30/57] Compiling SymbolKit SourceRange.swift
[31/57] Compiling SymbolKit Metadata.swift
[32/57] Compiling SymbolKit Module.swift
[33/57] Compiling SymbolKit OperatingSystem.swift
[34/57] Compiling SymbolKit Platform.swift
[35/57] Compiling SymbolKit Relationship.swift
[36/57] Compiling SymbolKit RelationshipKind.swift
[37/57] Compiling SymbolKit SourceOrigin.swift
[38/57] Compiling SymbolKit GenericConstraints.swift
[39/57] Compiling SymbolKit Swift.swift
[40/57] Compiling SymbolKit GenericConstraint.swift
[41/57] Compiling SymbolKit GenericParameter.swift
[42/57] Compiling SymbolKit Generics.swift
[43/57] Compiling SymbolKit Namespace.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets SnippetParser.swift
[53/57] Compiling Snippets Snippet.swift
[54/57] Emitting module Snippets
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (5.45s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/133] Compiling _CollectionsUtilities UnsafeBufferPointer+Extras.swift
[3/133] Compiling BigInt Floating Point Conversion.swift
[4/133] Compiling BigInt Addition.swift
[5/134] Compiling BigInt Shifts.swift
[6/134] Compiling BigInt Square Root.swift
[7/134] Compiling BigInt Comparable.swift
[8/134] Compiling BigInt Exponentiation.swift
[9/134] Compiling BigInt BigInt.swift
[10/134] Compiling BigInt BigUInt.swift
[13/136] Compiling BigInt Bitwise Ops.swift
[14/136] Compiling BigInt Codable.swift
[17/136] Compiling Logging MetadataProvider.swift
[18/136] Compiling BigInt GCD.swift
[19/136] Compiling BigInt Hashable.swift
[20/136] Compiling Crypto Digest.swift
[21/136] Compiling Crypto Digests.swift
[22/136] Compiling Crypto HashFunctions.swift
[23/136] Compiling Crypto HashFunctions_SHA2.swift
[24/136] Compiling Crypto Insecure.swift
[25/136] Compiling Crypto Insecure_HashFunctions.swift
[26/142] Compiling _NIODataStructures PriorityQueue.swift
[27/142] Compiling _NIODataStructures _TinyArray.swift
[28/142] Compiling _NIOBase64 Base64.swift
[29/142] Emitting module _NIOBase64
[30/142] Compiling BigInt Division.swift
[41/142] Compiling _CollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[42/142] Compiling Atomics IntegerOperations.swift
[43/142] Compiling Atomics Unmanaged extensions.swift
[46/142] Compiling BigInt Strideable.swift
[47/142] Compiling BigInt String Conversion.swift
[48/142] Compiling BigInt Integer Conversion.swift
[49/142] Compiling BigInt Multiplication.swift
[50/142] Compiling BigInt Data Conversion.swift
[51/142] Compiling _NIODataStructures Heap.swift
[52/142] Emitting module _NIODataStructures
[55/142] Compiling NIOConcurrencyHelpers lock.swift
[60/142] Compiling Crypto ECDH_boring.swift
[61/142] Compiling Crypto DH.swift
[62/142] Compiling Crypto ECDH.swift
[63/142] Compiling Crypto HKDF.swift
[64/142] Compiling Crypto AESWrap.swift
[65/142] Compiling Crypto AESWrap_boring.swift
[66/142] Compiling Crypto Ed25519_boring.swift
[67/142] Compiling Crypto EllipticCurvePoint_boring.swift
[68/142] Compiling Crypto EllipticCurve_boring.swift
[69/142] Compiling Crypto NISTCurvesKeys_boring.swift
[70/142] Compiling Crypto X25519Keys_boring.swift
[71/142] Compiling Crypto Curve25519.swift
[72/142] Emitting module _CollectionsUtilities
[73/142] Compiling Crypto Ed25519.swift
[74/142] Compiling Crypto NISTCurvesKeys.swift
[75/142] Compiling Crypto X25519Keys.swift
[76/142] Compiling Crypto SymmetricKeys.swift
[77/142] Compiling Crypto HMAC.swift
[78/142] Compiling Crypto MACFunctions.swift
[79/142] Compiling Crypto MessageAuthenticationCode.swift
[80/142] Compiling Crypto AES.swift
[81/142] Compiling Crypto ECDSASignature_boring.swift
[82/142] Compiling Crypto ECDSA_boring.swift
[83/142] Compiling Crypto EdDSA_boring.swift
[84/142] Compiling Crypto ECDSA.swift
[85/142] Emitting module Crypto
[86/142] Emitting module NIOConcurrencyHelpers
[87/142] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[88/142] Compiling NIOConcurrencyHelpers NIOLock.swift
[89/142] Compiling NIOConcurrencyHelpers atomics.swift
[90/142] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[93/144] Emitting module BigInt
[98/144] Compiling Crypto EdDSA.swift
[99/144] Compiling Crypto Signature.swift
[100/144] Compiling Crypto ArbitraryPrecisionInteger_boring.swift
[101/144] Compiling Crypto CryptoKitErrors_boring.swift
[102/144] Compiling Crypto FiniteFieldArithmeticContext_boring.swift
[103/144] Compiling Crypto RNG_boring.swift
[122/144] Compiling Logging LogHandler.swift
[123/144] Emitting module Logging
[124/144] Compiling Logging Logging.swift
[125/144] Compiling Logging Locks.swift
[126/144] Compiling Crypto SafeCompare_boring.swift
[127/144] Compiling Crypto Zeroization_boring.swift
[128/144] Compiling Crypto PrettyBytes.swift
[129/144] Compiling Crypto SafeCompare.swift
[130/144] Compiling Crypto SecureBytes.swift
[131/144] Compiling Crypto Zeroization.swift
[142/161] Compiling DequeModule _DequeBufferHeader.swift
[143/161] Compiling DequeModule _DequeSlot.swift
[144/161] Compiling DequeModule Deque.swift
[145/161] Compiling DequeModule _DequeBuffer.swift
[146/171] Compiling DequeModule _UnsafeWrappedBuffer.swift
[147/171] Compiling BigInt Subtraction.swift
[148/171] Compiling BigInt Words and Bits.swift
[149/171] Emitting module Atomics
[150/171] Emitting module _CryptoExtras
[151/171] Compiling DequeModule Deque+Sendable.swift
[152/171] Compiling DequeModule Deque+Testing.swift
[153/171] Compiling DequeModule Deque+Extras.swift
[154/171] Compiling DequeModule Deque+Hashable.swift
[155/171] Compiling DequeModule Deque._Storage.swift
[156/171] Compiling DequeModule Deque._UnsafeHandle.swift
[157/171] Compiling DequeModule Deque+Equatable.swift
[158/171] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[159/171] Compiling _CryptoExtras Error.swift
[160/171] Compiling _CryptoExtras DigestType.swift
[161/171] Compiling _CryptoExtras PEMDocument.swift
[162/171] Compiling _CryptoExtras CryptoKitErrors_boring.swift
[163/171] Compiling DequeModule Deque+Codable.swift
[164/171] Compiling DequeModule Deque+Collection.swift
[165/171] Compiling DequeModule Deque+CustomReflectable.swift
[166/171] Compiling DequeModule Deque+Descriptions.swift
[167/171] Emitting module DequeModule
[168/171] Compiling _CryptoExtras RSA.swift
[169/171] Compiling _CryptoExtras RSA_boring.swift
[170/171] Compiling _CryptoExtras RSA_security.swift
[171/171] Compiling _CryptoExtras BoringSSLHelpers.swift
[172/231] Compiling NIOCore GlobalSingletons.swift
[173/231] Compiling NIOCore IO.swift
[174/231] Compiling NIOCore IOData.swift
[175/231] Compiling NIOCore IPProtocol.swift
[176/231] Compiling NIOCore IntegerBitPacking.swift
[177/231] Compiling NIOCore IntegerTypes.swift
[178/237] Compiling NIOCore Interfaces.swift
[179/237] Compiling NIOCore Linux.swift
[180/237] Compiling NIOCore MarkedCircularBuffer.swift
[181/237] Compiling NIOCore MulticastChannel.swift
[182/237] Compiling NIOCore NIOAny.swift
[183/237] Compiling NIOCore NIOCloseOnErrorHandler.swift
[184/237] Compiling NIOCore AddressedEnvelope.swift
[185/237] Compiling NIOCore AsyncAwaitSupport.swift
[186/237] Compiling NIOCore AsyncChannel.swift
[187/237] Compiling NIOCore AsyncChannelInboundStream.swift
[188/237] Compiling NIOCore AsyncChannelInboundStreamChannelHandler.swift
[189/237] Compiling NIOCore AsyncChannelOutboundWriter.swift
[190/237] Compiling NIOCore AsyncChannelOutboundWriterHandler.swift
[191/237] Compiling NIOCore NIOLoopBound.swift
[192/237] Compiling NIOCore NIOSendable.swift
[193/237] Compiling NIOCore PointerHelpers.swift
[194/237] Compiling NIOCore RecvByteBufferAllocator.swift
[195/237] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[196/237] Compiling NIOCore SocketAddresses.swift
[197/237] Compiling NIOCore SocketOptionProvider.swift
[198/237] Compiling NIOCore SystemCallHelpers.swift
[199/237] Compiling NIOCore TimeAmount+Duration.swift
[200/237] Compiling NIOCore TypeAssistedChannelHandler.swift
[201/237] Compiling NIOCore UniversalBootstrapSupport.swift
[202/237] Compiling NIOCore Utilities.swift
[203/237] Compiling NIOCore NIOAsyncSequenceProducer.swift
[204/237] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[205/237] Compiling NIOCore NIOAsyncWriter.swift
[206/237] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[207/237] Compiling NIOCore BSDSocketAPI.swift
[208/237] Compiling NIOCore ByteBuffer-aux.swift
[209/237] Compiling NIOCore ByteBuffer-conversions.swift
[210/237] Compiling NIOCore ConvenienceOptionSupport.swift
[211/237] Compiling NIOCore DeadChannel.swift
[212/237] Compiling NIOCore DispatchQueue+WithFuture.swift
[213/237] Compiling NIOCore EventLoop+Deprecated.swift
[214/237] Compiling NIOCore EventLoop+SerialExecutor.swift
[215/237] Compiling NIOCore EventLoop.swift
[216/237] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[217/237] Compiling NIOCore ChannelHandler.swift
[218/237] Compiling NIOCore ChannelHandlers.swift
[219/237] Compiling NIOCore ChannelInvoker.swift
[220/237] Compiling NIOCore ChannelOption.swift
[221/237] Compiling NIOCore ChannelPipeline.swift
[222/237] Compiling NIOCore CircularBuffer.swift
[223/237] Compiling NIOCore Codec.swift
[224/237] Compiling NIOCore ByteBuffer-core.swift
[225/237] Compiling NIOCore ByteBuffer-hexdump.swift
[226/237] Compiling NIOCore ByteBuffer-int.swift
[227/237] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[228/237] Compiling NIOCore ByteBuffer-multi-int.swift
[229/237] Compiling NIOCore ByteBuffer-views.swift
[230/237] Compiling NIOCore Channel.swift
[231/237] Emitting module NIOCore
[232/237] Compiling NIOCore EventLoopFuture+Deprecated.swift
[233/237] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[234/237] Compiling NIOCore EventLoopFuture.swift
[235/237] Compiling NIOCore FileDescriptor.swift
[236/237] Compiling NIOCore FileHandle.swift
[237/237] Compiling NIOCore FileRegion.swift
[238/290] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[239/290] Compiling NIOEmbedded AsyncTestingChannel.swift
[240/290] Emitting module NIOEmbedded
[241/290] Compiling NIOEmbedded Embedded.swift
[242/290] Compiling NIOPosix SocketProtocols.swift
[243/290] Compiling NIOPosix System.swift
[244/290] Compiling NIOPosix Thread.swift
[245/290] Compiling NIOPosix ThreadPosix.swift
[246/290] Compiling NIOPosix ThreadWindows.swift
[247/295] Emitting module NIOPosix
[248/295] Compiling NIOPosix HappyEyeballs.swift
[249/295] Compiling NIOPosix IO.swift
[250/295] Compiling NIOPosix IntegerBitPacking.swift
[251/295] Compiling NIOPosix IntegerTypes.swift
[252/295] Compiling NIOPosix Linux.swift
[253/295] Compiling NIOPosix LinuxCPUSet.swift
[254/295] Compiling NIOPosix BSDSocketAPICommon.swift
[255/295] Compiling NIOPosix BSDSocketAPIPosix.swift
[256/295] Compiling NIOPosix BSDSocketAPIWindows.swift
[257/295] Compiling NIOPosix BaseSocket.swift
[258/295] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[259/295] Compiling NIOPosix BaseSocketChannel.swift
[260/295] Compiling NIOPosix SelectorKqueue.swift
[261/295] Compiling NIOPosix SelectorUring.swift
[262/295] Compiling NIOPosix ServerSocket.swift
[263/295] Compiling NIOPosix Socket.swift
[264/295] Compiling NIOPosix SocketChannel.swift
[265/295] Compiling NIOPosix BaseStreamSocketChannel.swift
[266/295] Compiling NIOPosix Bootstrap.swift
[267/295] Compiling NIOPosix ControlMessage.swift
[268/295] Compiling NIOPosix DatagramVectorReadManager.swift
[269/295] Compiling NIOPosix FileDescriptor.swift
[270/295] Compiling NIOPosix GetaddrinfoResolver.swift
[271/295] Compiling NIOPosix Selectable.swift
[272/295] Compiling NIOPosix SelectableChannel.swift
[273/295] Compiling NIOPosix SelectableEventLoop.swift
[274/295] Compiling NIOPosix SelectorEpoll.swift
[275/295] Compiling NIOPosix SelectorGeneric.swift
[276/295] Compiling NIOPosix PooledRecvBufferAllocator.swift
[277/295] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[278/295] Compiling NIOPosix PosixSingletons.swift
[279/295] Compiling NIOPosix RawSocketBootstrap.swift
[280/295] Compiling NIOPosix Resolver.swift
[281/295] Compiling NIOPosix PendingWritesManager.swift
[282/295] Compiling NIOPosix PipeChannel.swift
[283/295] Compiling NIOPosix PipePair.swift
[284/295] Compiling NIOPosix PointerHelpers.swift
[285/295] Compiling NIOPosix Pool.swift
[286/295] Compiling NIOPosix UnsafeTransfer.swift
[287/295] Compiling NIOPosix Utilities.swift
[288/295] Compiling NIOPosix VsockAddress.swift
[289/295] Compiling NIOPosix VsockChannelEvents.swift
[290/295] Compiling NIOPosix resource_bundle_accessor.swift
[291/295] Compiling NIOPosix LinuxUring.swift
[292/295] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[293/295] Compiling NIOPosix NIOThreadPool.swift
[294/295] Compiling NIOPosix NonBlockingFileIO.swift
[295/295] Compiling NIOPosix PendingDatagramWritesManager.swift
[296/297] Compiling NIO Exports.swift
[297/297] Emitting module NIO
[298/301] Compiling NIOFoundationCompat Codable+ByteBuffer.swift
[299/301] Compiling NIOFoundationCompat JSONSerialization+ByteBuffer.swift
[300/301] Emitting module NIOFoundationCompat
[301/301] Compiling NIOFoundationCompat ByteBuffer-foundation.swift
[302/362] Compiling NIOSSH ActiveState.swift
[303/362] Compiling NIOSSH IdleState.swift
[304/362] Compiling NIOSSH KeyExchangeState.swift
[305/362] Compiling NIOSSH ReceivedKexInitWhenActiveState.swift
[306/362] Compiling NIOSSH ReceivedNewKeysState.swift
[307/362] Compiling NIOSSH RekeyingReceivedNewKeysState.swift
[308/362] Compiling NIOSSH RekeyingSentNewKeysState.swift
[309/368] Emitting module NIOSSH
[310/368] Compiling NIOSSH ByteBuffer+SSH.swift
[311/368] Compiling NIOSSH CSPRNG.swift
[312/368] Compiling NIOSSH ChildChannelOptions.swift
[313/368] Compiling NIOSSH ChildChannelStateMachine.swift
[314/368] Compiling NIOSSH ChildChannelUserEvents.swift
[315/368] Compiling NIOSSH ChildChannelWindowManager.swift
[316/368] Compiling NIOSSH ChildChannelWritabilityManager.swift
[317/368] Compiling NIOSSH OutboundFlowController.swift
[318/368] Compiling NIOSSH SSHChannelData.swift
[319/368] Compiling NIOSSH SSHChannelIdentifier.swift
[320/368] Compiling NIOSSH SSHChannelMultiplexer.swift
[321/368] Compiling NIOSSH SSHChannelType.swift
[322/368] Compiling NIOSSH SSHChildChannel.swift
[323/368] Compiling NIOSSH AcceptsChannelMessages.swift
[324/368] Compiling NIOSSH AcceptsKeyExchangeMessages.swift
[325/368] Compiling NIOSSH AcceptsUserAuthMessages.swift
[326/368] Compiling NIOSSH AcceptsVersionMessages.swift
[327/368] Compiling NIOSSH SendsChannelMessages.swift
[328/368] Compiling NIOSSH SendsKeyExchangeMessages.swift
[329/368] Compiling NIOSSH SendsUserAuthMessages.swift
[330/368] Compiling NIOSSH SSHConnectionStateMachine.swift
[331/368] Compiling NIOSSH ServerUserAuthenticationDelegate.swift
[332/368] Compiling NIOSSH SimplePasswordDelegate.swift
[333/368] Compiling NIOSSH UserAuthDelegate.swift
[334/368] Compiling NIOSSH UserAuthSignablePayload.swift
[335/368] Compiling NIOSSH UserAuthenticationMethod.swift
[336/368] Compiling NIOSSH UserAuthenticationStateMachine.swift
[337/368] Compiling NIOSSH SSHServerConfiguration.swift
[338/368] Compiling NIOSSH SSHTerminalModes.swift
[339/368] Compiling NIOSSH AESGCM.swift
[340/368] Compiling NIOSSH SSHTransportProtection.swift
[341/368] Compiling NIOSSH ClientUserAuthenticationDelegate.swift
[342/368] Compiling NIOSSH DenyAllServerAuthDelegate.swift
[343/368] Compiling NIOSSH RekeyingState.swift
[344/368] Compiling NIOSSH SentKexInitWhenActiveState.swift
[345/368] Compiling NIOSSH SentNewKeysState.swift
[346/368] Compiling NIOSSH SentVersionState.swift
[347/368] Compiling NIOSSH UserAuthenticationState.swift
[348/368] Compiling NIOSSH Constants.swift
[349/368] Compiling NIOSSH GlobalRequestDelegate.swift
[350/368] Compiling NIOSSH ECDHCompatibleKey.swift
[351/368] Compiling NIOSSH EllipticCurveKeyExchange.swift
[352/368] Compiling NIOSSH SSHKeyExchangeResult.swift
[353/368] Compiling NIOSSH SSHKeyExchangeStateMachine.swift
[354/368] Compiling NIOSSH ClientServerAuthenticationDelegate.swift
[355/368] Compiling NIOSSH CustomKeys.swift
[356/368] Compiling NIOSSH NIOSSHCertifiedPublicKey.swift
[357/368] Compiling NIOSSH NIOSSHPrivateKey.swift
[358/368] Compiling NIOSSH NIOSSHPublicKey.swift
[359/368] Compiling NIOSSH NIOSSHSignature.swift
[360/368] Compiling NIOSSH NIOSSHError.swift
[361/368] Compiling NIOSSH NIOSSHHandler.swift
[362/368] Compiling NIOSSH NIOSSHSendable.swift
[363/368] Compiling NIOSSH Role.swift
[364/368] Compiling NIOSSH SSHClientConfiguration.swift
[365/368] Compiling NIOSSH SSHEncryptablePacketPayload.swift
[366/368] Compiling NIOSSH SSHMessages.swift
[367/368] Compiling NIOSSH SSHPacketParser.swift
[368/368] Compiling NIOSSH SSHPacketSerializer.swift
[369/400] Compiling Citadel Client.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 |         let session = try await handshakeHandler.authenticated.map {
183 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 |         }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  2 | import Crypto
  3 | import Logging
  4 | import NIOSSH
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  5 |
  6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 |         let session = try await handshakeHandler.authenticated.map {
213 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 |         }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
[370/400] Compiling Citadel ClientSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 |         let session = try await handshakeHandler.authenticated.map {
183 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 |         }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  2 | import Crypto
  3 | import Logging
  4 | import NIOSSH
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  5 |
  6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 |         let session = try await handshakeHandler.authenticated.map {
213 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 |         }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
[371/400] Compiling Citadel DirectTCPIP+Client.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 |         let session = try await handshakeHandler.authenticated.map {
183 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 |         }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  2 | import Crypto
  3 | import Logging
  4 | import NIOSSH
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  5 |
  6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 |         let session = try await handshakeHandler.authenticated.map {
213 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 |         }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
[372/400] Compiling Citadel DirectTCPIP+Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 |         let session = try await handshakeHandler.authenticated.map {
183 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 |         }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  2 | import Crypto
  3 | import Logging
  4 | import NIOSSH
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
  5 |
  6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 |         let session = try await handshakeHandler.authenticated.map {
213 |             SSHClientSession(channel: channel, sshHandler: sshHandler)
    |                                                            `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 |         }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 24 | /// other usage models, including port forwarding. It is also able to construct somewhat
 25 | /// arbitrary secure multiplexed channels.
 26 | public final class NIOSSHHandler {
    |                    `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
 27 |     internal var channel: Channel? {
 28 |         self.context.map { $0.channel }
[373/403] Compiling Citadel Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 |                 .channelInitializer { pipeChannel in
142 |                     pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 |                 }.withPipes(
    |                   |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
    |                   `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 |                     inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 |                     outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[374/403] Compiling Citadel ExecClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 |                 .channelInitializer { pipeChannel in
142 |                     pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 |                 }.withPipes(
    |                   |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
    |                   `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 |                     inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 |                     outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[375/403] Compiling Citadel ExecDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 |                 .channelInitializer { pipeChannel in
142 |                     pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 |                 }.withPipes(
    |                   |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
    |                   `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 |                     inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 |                     outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[376/403] Compiling Citadel ExecHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 |                 .channelInitializer { pipeChannel in
142 |                     pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 |                 }.withPipes(
    |                   |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
    |                   `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 |                     inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 |                     outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[377/403] Emitting module Citadel
[378/403] Compiling Citadel SFTPClientInboundHandler.swift
[379/403] Compiling Citadel SFTPFile.swift
[380/403] Compiling Citadel SFTPBasicEnums.swift
[381/403] Compiling Citadel RSA.swift
[382/403] Compiling Citadel BCrypt.swift
[383/403] Compiling Citadel ByteBufferHelpers.swift
[384/403] Compiling Citadel ChannelUnwrapper.swift
[385/403] Compiling Citadel SSHAuthenticationMethod.swift
[386/403] Compiling Citadel SSHCert.swift
[387/403] Compiling Citadel SSHConnectionPoolSettings.swift
[388/403] Compiling Citadel SFTPFileFlags.swift
[389/403] Compiling Citadel SFTPMessage.swift
[390/403] Compiling Citadel SFTPMessageParser.swift
[391/403] Compiling Citadel SFTPSerializer.swift
[392/403] Compiling Citadel SFTPServer.swift
[393/403] Compiling Citadel SFTPServerInboundHandler.swift
[394/403] Compiling Citadel AES.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
 96 |             let serialized = Array(bignum.serialize())
 97 |             (buffer.baseAddress! + 1)
 98 |                 .assign(from: serialized, count: serialized.count)
    |                  |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
    |                  `- note: use 'update(from:count:)' instead
 99 |
100 |             if buffer[1] & 0x80 != 0 {
[395/403] Compiling Citadel DH-Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
 96 |             let serialized = Array(bignum.serialize())
 97 |             (buffer.baseAddress! + 1)
 98 |                 .assign(from: serialized, count: serialized.count)
    |                  |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
    |                  `- note: use 'update(from:count:)' instead
 99 |
100 |             if buffer[1] & 0x80 != 0 {
[396/403] Compiling Citadel DiffieHellmanGroup14Sha1.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
 96 |             let serialized = Array(bignum.serialize())
 97 |             (buffer.baseAddress! + 1)
 98 |                 .assign(from: serialized, count: serialized.count)
    |                  |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
    |                  `- note: use 'update(from:count:)' instead
 99 |
100 |             if buffer[1] & 0x80 != 0 {
[397/403] Compiling Citadel DiffieHellmanGroup14Sha256.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
 96 |             let serialized = Array(bignum.serialize())
 97 |             (buffer.baseAddress! + 1)
 98 |                 .assign(from: serialized, count: serialized.count)
    |                  |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
    |                  `- note: use 'update(from:count:)' instead
 99 |
100 |             if buffer[1] & 0x80 != 0 {
[398/403] Compiling Citadel NIOGlueHandler.swift
[399/403] Compiling Citadel OpenSSHKey.swift
[400/403] Compiling Citadel SFTPClient.swift
[401/403] Compiling Citadel Server.swift
[402/403] Compiling Citadel ShellDelegate.swift
[403/403] Compiling Citadel TTY.swift
Build of target: 'Citadel' complete! (11.40s)
    1458
9	/Users/admin/builder/spi-builder-workspace/.docs/orlandos-nl/citadel/main
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/orlandos-nl/citadel/main
File count: 1458
Doc size:   9.0MB
Preparing doc bundle ...
Uploading prod-orlandos-nl-citadel-main-342479d2.zip to s3://spi-docs-inbox/prod-orlandos-nl-citadel-main-342479d2.zip
Copying... [10%]
Copying... [21%]
Copying... [31%]
Copying... [41%]
Copying... [52%]
Copying... [62%]
Copying... [73%]
Copying... [83%]
Copying... [93%]
Copying... [100%]
Done.