The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of Citadel, reference main (48d4a8), with Swift 6.1 for Linux on 24 Oct 2025 14:20:12 UTC.

Swift 6 data race errors: 33

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

 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 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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):
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:134:13: warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
132 |
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
    |             `- warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:4:13: note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | final class SSHChannelDataUnwrapper: ChannelInboundHandler {
   |             `- note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:135:13: warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
    |             `- warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:30:13: note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class SSHOutboundChannelDataWrapper: ChannelOutboundHandler {
   |             `- note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
31 |     typealias OutboundIn = ByteBuffer
32 |     typealias OutboundOut = SSHChannelData
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:136:13: warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
    |             `- warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
137 |             CloseErrorHandler(logger: logger)
138 |         )
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:137:13: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
    |             `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
138 |         )
139 |     }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:6:13: note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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)
/host/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
/host/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 |                 }
/host/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):
/host/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 {
[935/951] Compiling Citadel Server.swift
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |                 }
/host/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
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/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 |     let _storage: _NIOAny
/host/spi-builder-workspace/Sources/Citadel/Server.swift:168:49: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
166 |             handlers.append(ExecHandler(delegate: exec, username: username))
167 |
168 |             return channel.pipeline.addHandlers(handlers)
    |                                                 `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
169 |         case .directTCPIP(let request):
170 |             guard let delegate = directTCPIP else {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:174:48: warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
172 |             }
173 |
174 |             return channel.pipeline.addHandler(DataToBufferCodec()).flatMap {
    |                                                `- warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
175 |                 return delegate.initializeDirectTCPIPChannel(
176 |                     channel,
/host/spi-builder-workspace/Sources/Citadel/DirectTCPIP/Client/DirectTCPIP+Client.swift:4:22: note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | internal final class DataToBufferCodec: ChannelDuplexHandler {
   |                      `- note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Server.swift:324:21: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
322 |
323 |                 return channel.pipeline.addHandlers([
324 |                     NIOSSHHandler(
    |                     `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
325 |                         role: .server(server),
326 |                         allocator: channel.allocator,
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:333:21: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
    :
331 |                         }
332 |                     ),
333 |                     CloseErrorHandler(logger: logger)
    |                     `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
334 |                 ])
335 |             }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:341:11: warning: type 'SSHServer' does not conform to the 'Sendable' protocol
239 | /// The server can be closed using the `close()` method.
240 | /// - Note: This class is not thread safe.
241 | public final class SSHServer {
    |                    `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
242 |     let channel: Channel
243 |     let delegate: CitadelServerDelegate
    :
339 |         return try await bootstrap.bind(host: host, port: port).map { channel in
340 |             SSHServer(channel: channel, logger: logger, delegate: delegate)
341 |         }.get()
    |           `- warning: type 'SSHServer' does not conform to the 'Sendable' protocol
342 |     }
343 | }
/host/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 |
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure
 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
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure
 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
 80 |                     )
 81 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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):
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:134:13: warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
132 |
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
    |             `- warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:4:13: note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | final class SSHChannelDataUnwrapper: ChannelInboundHandler {
   |             `- note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:135:13: warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
    |             `- warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:30:13: note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class SSHOutboundChannelDataWrapper: ChannelOutboundHandler {
   |             `- note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
31 |     typealias OutboundIn = ByteBuffer
32 |     typealias OutboundOut = SSHChannelData
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:136:13: warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
    |             `- warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
137 |             CloseErrorHandler(logger: logger)
138 |         )
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:137:13: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
    |             `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
138 |         )
139 |     }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:6:13: note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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)
/host/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
/host/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 |                 }
/host/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):
/host/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 {
[936/951] Compiling Citadel ShellDelegate.swift
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |                 }
/host/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
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/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 |     let _storage: _NIOAny
/host/spi-builder-workspace/Sources/Citadel/Server.swift:168:49: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
166 |             handlers.append(ExecHandler(delegate: exec, username: username))
167 |
168 |             return channel.pipeline.addHandlers(handlers)
    |                                                 `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
169 |         case .directTCPIP(let request):
170 |             guard let delegate = directTCPIP else {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:174:48: warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
172 |             }
173 |
174 |             return channel.pipeline.addHandler(DataToBufferCodec()).flatMap {
    |                                                `- warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
175 |                 return delegate.initializeDirectTCPIPChannel(
176 |                     channel,
/host/spi-builder-workspace/Sources/Citadel/DirectTCPIP/Client/DirectTCPIP+Client.swift:4:22: note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | internal final class DataToBufferCodec: ChannelDuplexHandler {
   |                      `- note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Server.swift:324:21: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
322 |
323 |                 return channel.pipeline.addHandlers([
324 |                     NIOSSHHandler(
    |                     `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
325 |                         role: .server(server),
326 |                         allocator: channel.allocator,
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:333:21: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
    :
331 |                         }
332 |                     ),
333 |                     CloseErrorHandler(logger: logger)
    |                     `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
334 |                 ])
335 |             }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:341:11: warning: type 'SSHServer' does not conform to the 'Sendable' protocol
239 | /// The server can be closed using the `close()` method.
240 | /// - Note: This class is not thread safe.
241 | public final class SSHServer {
    |                    `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
242 |     let channel: Channel
243 |     let delegate: CitadelServerDelegate
    :
339 |         return try await bootstrap.bind(host: host, port: port).map { channel in
340 |             SSHServer(channel: channel, logger: logger, delegate: delegate)
341 |         }.get()
    |           `- warning: type 'SSHServer' does not conform to the 'Sendable' protocol
342 |     }
343 | }
/host/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 |
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure
 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
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure
 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
 80 |                     )
 81 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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):
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:134:13: warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
132 |
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
    |             `- warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:4:13: note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | final class SSHChannelDataUnwrapper: ChannelInboundHandler {
   |             `- note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:135:13: warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
    |             `- warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:30:13: note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class SSHOutboundChannelDataWrapper: ChannelOutboundHandler {
   |             `- note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
31 |     typealias OutboundIn = ByteBuffer
32 |     typealias OutboundOut = SSHChannelData
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:136:13: warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
    |             `- warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
137 |             CloseErrorHandler(logger: logger)
138 |         )
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:137:13: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
    |             `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
138 |         )
139 |     }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:6:13: note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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)
/host/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
/host/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 |                 }
/host/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):
/host/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 {
[937/951] Compiling Citadel TTY.swift
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |                 }
/host/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
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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"),
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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(())
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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
/host/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:
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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 |     }
/host/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 |     let _storage: _NIOAny
/host/spi-builder-workspace/Sources/Citadel/Server.swift:168:49: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
166 |             handlers.append(ExecHandler(delegate: exec, username: username))
167 |
168 |             return channel.pipeline.addHandlers(handlers)
    |                                                 `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
169 |         case .directTCPIP(let request):
170 |             guard let delegate = directTCPIP else {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:174:48: warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
172 |             }
173 |
174 |             return channel.pipeline.addHandler(DataToBufferCodec()).flatMap {
    |                                                `- warning: type 'DataToBufferCodec' does not conform to the 'Sendable' protocol
175 |                 return delegate.initializeDirectTCPIPChannel(
176 |                     channel,
/host/spi-builder-workspace/Sources/Citadel/DirectTCPIP/Client/DirectTCPIP+Client.swift:4:22: note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | internal final class DataToBufferCodec: ChannelDuplexHandler {
   |                      `- note: class 'DataToBufferCodec' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Server.swift:324:21: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
322 |
323 |                 return channel.pipeline.addHandlers([
324 |                     NIOSSHHandler(
    |                     `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
325 |                         role: .server(server),
326 |                         allocator: channel.allocator,
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Server.swift:333:21: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
    :
331 |                         }
332 |                     ),
333 |                     CloseErrorHandler(logger: logger)
    |                     `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
334 |                 ])
335 |             }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:341:11: warning: type 'SSHServer' does not conform to the 'Sendable' protocol
239 | /// The server can be closed using the `close()` method.
240 | /// - Note: This class is not thread safe.
241 | public final class SSHServer {
    |                    `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
242 |     let channel: Channel
243 |     let delegate: CitadelServerDelegate
    :
339 |         return try await bootstrap.bind(host: host, port: port).map { channel in
340 |             SSHServer(channel: channel, logger: logger, delegate: delegate)
341 |         }.get()
    |           `- warning: type 'SSHServer' does not conform to the 'Sendable' protocol
342 |     }
343 | }
/host/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 |
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure
 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
 77 |                         inbound: self.inbound.stream,
 78 |                         outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure
 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
 80 |                     )
 81 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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),
/host/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 |                 }
/host/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
/host/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):
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:134:13: warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
132 |
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
    |             `- warning: type 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:4:13: note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 2 | import NIOSSH
 3 |
 4 | final class SSHChannelDataUnwrapper: ChannelInboundHandler {
   |             `- note: class 'SSHChannelDataUnwrapper' does not conform to the 'Sendable' protocol
 5 |     typealias InboundIn = SSHChannelData
 6 |     typealias InboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:135:13: warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
133 |         return channel.pipeline.addHandlers(
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
    |             `- warning: type 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:30:13: note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class SSHOutboundChannelDataWrapper: ChannelOutboundHandler {
   |             `- note: class 'SSHOutboundChannelDataWrapper' does not conform to the 'Sendable' protocol
31 |     typealias OutboundIn = ByteBuffer
32 |     typealias OutboundOut = SSHChannelData
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:136:13: warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 43 | }
 44 |
 45 | final class ShellServerInboundHandler: ChannelInboundHandler {
    |             `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
 46 |     typealias InboundIn = ByteBuffer
 47 |
    :
134 |             SSHChannelDataUnwrapper(),
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
    |             `- warning: type 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
137 |             CloseErrorHandler(logger: logger)
138 |         )
/host/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:137:13: warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
135 |             SSHOutboundChannelDataWrapper(),
136 |             shellInboundHandler,
137 |             CloseErrorHandler(logger: logger)
    |             `- warning: type 'CloseErrorHandler' does not conform to the 'Sendable' protocol
138 |         )
139 |     }
/host/spi-builder-workspace/Sources/Citadel/Server.swift:6:13: note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  4 | import NIOConcurrencyHelpers
  5 |
  6 | final class CloseErrorHandler: ChannelInboundHandler {
    |             `- note: class 'CloseErrorHandler' does not conform to the 'Sendable' protocol
  7 |     typealias InboundIn = Any
  8 |     let logger: Logger
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/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)
/host/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
/host/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 |                 }
/host/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):
/host/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 {
[938/951] Compiling Citadel AES.swift
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha1.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha256.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
[939/951] Compiling Citadel DH-Helpers.swift
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha1.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha256.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
[940/951] Compiling Citadel DiffieHellmanGroup14Sha1.swift
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha1.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha256.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
[941/951] Compiling Citadel DiffieHellmanGroup14Sha256.swift
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha1.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha256.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
[942/951] Compiling Citadel RSA.swift
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha1.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
/host/spi-builder-workspace/Sources/Citadel/Algorithms/DiffieHellmanGroup14Sha256.swift:19:23: warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 17 |     private var sharedSecret: Data?
 18 |     public let ourKey: Insecure.RSA.PrivateKey
 19 |     public static var ourKey: Insecure.RSA.PrivateKey?
    |                       |- warning: static property 'ourKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'ourKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'ourKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     private struct _KeyExchangeResult {
[943/951] Compiling Citadel BCrypt.swift
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:10:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 8 |     func handlerAdded(context: ChannelHandlerContext) {
 9 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
10 |             context.fireErrorCaught(error)
   |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
11 |         }
12 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Citadel/Client.swift:182:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
180 |         ).get()
181 |
182 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:185:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
185 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
186 |         }.get()
187 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:214:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
212 |         }
213 |
214 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:217:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
217 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
218 |         }.get()
219 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:253:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
251 |         ).get()
252 |
253 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
254 |         let session = SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
255 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:247:35: warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
245 |         try await SSHClientSession.addHandlers(
246 |             on: channel,
247 |             authenticationMethod: authenticationMethod(),
    |                                   |- warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
248 |             inboundChannelHandler: inboundChannelHandler,
249 |             hostKeyValidator: hostKeyValidator,
/host/spi-builder-workspace/Sources/Citadel/Client.swift:293:35: warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
291 |             host: host,
292 |             port: port,
293 |             authenticationMethod: authenticationMethod,
    |                                   `- warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
294 |             hostKeyValidator: hostKeyValidator,
295 |             algorithms: algorithms,
/host/spi-builder-workspace/Sources/Citadel/SSHAuthenticationMethod.swift:6:20: note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  4 |
  5 | /// Represents an authentication method.
  6 | public final class SSHAuthenticationMethod: NIOSSHClientUserAuthenticationDelegate {
    |                    `- note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  7 |     private enum Implementation {
  8 |         case custom(NIOSSHClientUserAuthenticationDelegate)
/host/spi-builder-workspace/Sources/Citadel/Client.swift:324:13: warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
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
    :
322 |     private func onNewSession(_ session: SSHClientSession) {
323 |         session.channel.closeFuture.whenComplete { [weak self] _ in
324 |             self?.onClose()
    |             `- warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
325 |         }
326 |     }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:359:35: warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
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
    :
357 |             host: host,
358 |             port: port,
359 |             authenticationMethod: self.authenticationMethod(),
    |                                   `- warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
360 |             hostKeyValidator: self.hostKeyValidator,
361 |             protocolOptions: protocolOptions,
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:232:15: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
230 |             channel.pipeline.handler(type: ClientHandshakeHandler.self).flatMap { handshakeHandler in
231 |                 handshakeHandler.authenticated
232 |             }.flatMap {
    |               `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
233 |                 channel.pipeline.handler(type: NIOSSHHandler.self)
234 |             }.map { sshHandler in
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:272:36: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 |         settings.protocolOptions = protocolOptions
271 |         settings.group = group
272 |         settings.channelHandlers = channelHandlers
    |                                    `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
273 |         settings.connectTimeout = connectTimeout
274 |
/host/spi-builder-workspace/Sources/Citadel/Client.swift:329: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
327 |
328 |     private func onClose() {
329 |         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
330 |             self.onDisconnect?()
    |             `- note: closure captures 'self' which is accessible to code in the current task
331 |
332 |             switch connectionSettings.reconnect.mode {
[944/951] Compiling Citadel ByteBufferHelpers.swift
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:10:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 8 |     func handlerAdded(context: ChannelHandlerContext) {
 9 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
10 |             context.fireErrorCaught(error)
   |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
11 |         }
12 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Citadel/Client.swift:182:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
180 |         ).get()
181 |
182 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:185:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
185 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
186 |         }.get()
187 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:214:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
212 |         }
213 |
214 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:217:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
217 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
218 |         }.get()
219 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:253:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
251 |         ).get()
252 |
253 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
254 |         let session = SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
255 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:247:35: warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
245 |         try await SSHClientSession.addHandlers(
246 |             on: channel,
247 |             authenticationMethod: authenticationMethod(),
    |                                   |- warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
248 |             inboundChannelHandler: inboundChannelHandler,
249 |             hostKeyValidator: hostKeyValidator,
/host/spi-builder-workspace/Sources/Citadel/Client.swift:293:35: warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
291 |             host: host,
292 |             port: port,
293 |             authenticationMethod: authenticationMethod,
    |                                   `- warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
294 |             hostKeyValidator: hostKeyValidator,
295 |             algorithms: algorithms,
/host/spi-builder-workspace/Sources/Citadel/SSHAuthenticationMethod.swift:6:20: note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  4 |
  5 | /// Represents an authentication method.
  6 | public final class SSHAuthenticationMethod: NIOSSHClientUserAuthenticationDelegate {
    |                    `- note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  7 |     private enum Implementation {
  8 |         case custom(NIOSSHClientUserAuthenticationDelegate)
/host/spi-builder-workspace/Sources/Citadel/Client.swift:324:13: warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
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
    :
322 |     private func onNewSession(_ session: SSHClientSession) {
323 |         session.channel.closeFuture.whenComplete { [weak self] _ in
324 |             self?.onClose()
    |             `- warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
325 |         }
326 |     }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:359:35: warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
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
    :
357 |             host: host,
358 |             port: port,
359 |             authenticationMethod: self.authenticationMethod(),
    |                                   `- warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
360 |             hostKeyValidator: self.hostKeyValidator,
361 |             protocolOptions: protocolOptions,
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:232:15: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
230 |             channel.pipeline.handler(type: ClientHandshakeHandler.self).flatMap { handshakeHandler in
231 |                 handshakeHandler.authenticated
232 |             }.flatMap {
    |               `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
233 |                 channel.pipeline.handler(type: NIOSSHHandler.self)
234 |             }.map { sshHandler in
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:272:36: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 |         settings.protocolOptions = protocolOptions
271 |         settings.group = group
272 |         settings.channelHandlers = channelHandlers
    |                                    `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
273 |         settings.connectTimeout = connectTimeout
274 |
/host/spi-builder-workspace/Sources/Citadel/Client.swift:329: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
327 |
328 |     private func onClose() {
329 |         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
330 |             self.onDisconnect?()
    |             `- note: closure captures 'self' which is accessible to code in the current task
331 |
332 |             switch connectionSettings.reconnect.mode {
[945/951] Compiling Citadel ChannelUnwrapper.swift
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:10:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 8 |     func handlerAdded(context: ChannelHandlerContext) {
 9 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
10 |             context.fireErrorCaught(error)
   |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
11 |         }
12 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Citadel/Client.swift:182:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
180 |         ).get()
181 |
182 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:185:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
185 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
186 |         }.get()
187 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:214:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
212 |         }
213 |
214 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:217:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
217 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
218 |         }.get()
219 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:253:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
251 |         ).get()
252 |
253 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
254 |         let session = SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
255 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:247:35: warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
245 |         try await SSHClientSession.addHandlers(
246 |             on: channel,
247 |             authenticationMethod: authenticationMethod(),
    |                                   |- warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
248 |             inboundChannelHandler: inboundChannelHandler,
249 |             hostKeyValidator: hostKeyValidator,
/host/spi-builder-workspace/Sources/Citadel/Client.swift:293:35: warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
291 |             host: host,
292 |             port: port,
293 |             authenticationMethod: authenticationMethod,
    |                                   `- warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
294 |             hostKeyValidator: hostKeyValidator,
295 |             algorithms: algorithms,
/host/spi-builder-workspace/Sources/Citadel/SSHAuthenticationMethod.swift:6:20: note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  4 |
  5 | /// Represents an authentication method.
  6 | public final class SSHAuthenticationMethod: NIOSSHClientUserAuthenticationDelegate {
    |                    `- note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  7 |     private enum Implementation {
  8 |         case custom(NIOSSHClientUserAuthenticationDelegate)
/host/spi-builder-workspace/Sources/Citadel/Client.swift:324:13: warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
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
    :
322 |     private func onNewSession(_ session: SSHClientSession) {
323 |         session.channel.closeFuture.whenComplete { [weak self] _ in
324 |             self?.onClose()
    |             `- warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
325 |         }
326 |     }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:359:35: warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
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
    :
357 |             host: host,
358 |             port: port,
359 |             authenticationMethod: self.authenticationMethod(),
    |                                   `- warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
360 |             hostKeyValidator: self.hostKeyValidator,
361 |             protocolOptions: protocolOptions,
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:232:15: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
230 |             channel.pipeline.handler(type: ClientHandshakeHandler.self).flatMap { handshakeHandler in
231 |                 handshakeHandler.authenticated
232 |             }.flatMap {
    |               `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
233 |                 channel.pipeline.handler(type: NIOSSHHandler.self)
234 |             }.map { sshHandler in
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:272:36: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 |         settings.protocolOptions = protocolOptions
271 |         settings.group = group
272 |         settings.channelHandlers = channelHandlers
    |                                    `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
273 |         settings.connectTimeout = connectTimeout
274 |
/host/spi-builder-workspace/Sources/Citadel/Client.swift:329: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
327 |
328 |     private func onClose() {
329 |         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
330 |             self.onDisconnect?()
    |             `- note: closure captures 'self' which is accessible to code in the current task
331 |
332 |             switch connectionSettings.reconnect.mode {
[946/951] Compiling Citadel Client.swift
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:10:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 8 |     func handlerAdded(context: ChannelHandlerContext) {
 9 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
10 |             context.fireErrorCaught(error)
   |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
11 |         }
12 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Citadel/Client.swift:182:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
180 |         ).get()
181 |
182 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:185:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
185 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
186 |         }.get()
187 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:214:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
212 |         }
213 |
214 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:217:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
217 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
218 |         }.get()
219 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:253:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
251 |         ).get()
252 |
253 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
254 |         let session = SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
255 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:247:35: warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
245 |         try await SSHClientSession.addHandlers(
246 |             on: channel,
247 |             authenticationMethod: authenticationMethod(),
    |                                   |- warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
248 |             inboundChannelHandler: inboundChannelHandler,
249 |             hostKeyValidator: hostKeyValidator,
/host/spi-builder-workspace/Sources/Citadel/Client.swift:293:35: warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
291 |             host: host,
292 |             port: port,
293 |             authenticationMethod: authenticationMethod,
    |                                   `- warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
294 |             hostKeyValidator: hostKeyValidator,
295 |             algorithms: algorithms,
/host/spi-builder-workspace/Sources/Citadel/SSHAuthenticationMethod.swift:6:20: note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  4 |
  5 | /// Represents an authentication method.
  6 | public final class SSHAuthenticationMethod: NIOSSHClientUserAuthenticationDelegate {
    |                    `- note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  7 |     private enum Implementation {
  8 |         case custom(NIOSSHClientUserAuthenticationDelegate)
/host/spi-builder-workspace/Sources/Citadel/Client.swift:324:13: warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
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
    :
322 |     private func onNewSession(_ session: SSHClientSession) {
323 |         session.channel.closeFuture.whenComplete { [weak self] _ in
324 |             self?.onClose()
    |             `- warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
325 |         }
326 |     }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:359:35: warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
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
    :
357 |             host: host,
358 |             port: port,
359 |             authenticationMethod: self.authenticationMethod(),
    |                                   `- warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
360 |             hostKeyValidator: self.hostKeyValidator,
361 |             protocolOptions: protocolOptions,
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:232:15: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
230 |             channel.pipeline.handler(type: ClientHandshakeHandler.self).flatMap { handshakeHandler in
231 |                 handshakeHandler.authenticated
232 |             }.flatMap {
    |               `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
233 |                 channel.pipeline.handler(type: NIOSSHHandler.self)
234 |             }.map { sshHandler in
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:272:36: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 |         settings.protocolOptions = protocolOptions
271 |         settings.group = group
272 |         settings.channelHandlers = channelHandlers
    |                                    `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
273 |         settings.connectTimeout = connectTimeout
274 |
/host/spi-builder-workspace/Sources/Citadel/Client.swift:329: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
327 |
328 |     private func onClose() {
329 |         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
330 |             self.onDisconnect?()
    |             `- note: closure captures 'self' which is accessible to code in the current task
331 |
332 |             switch connectionSettings.reconnect.mode {
[947/951] Compiling Citadel ClientSession.swift
/host/spi-builder-workspace/Sources/Citadel/ChannelUnwrapper.swift:10:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
 8 |     func handlerAdded(context: ChannelHandlerContext) {
 9 |         context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
10 |             context.fireErrorCaught(error)
   |             `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
11 |         }
12 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1792:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1790 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1791 | /// `ChannelHandler`.
1792 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1793 |     // visible for ChannelPipeline to modify
1794 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Citadel/Client.swift:182:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
180 |         ).get()
181 |
182 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:185:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
183 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
184 |         let session = try await handshakeHandler.authenticated.map {
185 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
186 |         }.get()
187 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:214:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
212 |         }
213 |
214 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:217:106: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
215 |         let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
216 |         let session = try await handshakeHandler.authenticated.map {
217 |             SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
    |                                                                                                          `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
218 |         }.get()
219 |
/host/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 }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:253:87: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
251 |         ).get()
252 |
253 |         let sshHandler = try await channel.pipeline.handler(type: NIOSSHHandler.self).get()
    |                                                                                       `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
254 |         let session = SSHClientSession(channel: channel, inboundChannelHandler: inboundChannelHandler, sshHandler: sshHandler)
255 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/Client.swift:247:35: warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
245 |         try await SSHClientSession.addHandlers(
246 |             on: channel,
247 |             authenticationMethod: authenticationMethod(),
    |                                   |- warning: implicit capture of 'authenticationMethod' requires that '() -> SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
248 |             inboundChannelHandler: inboundChannelHandler,
249 |             hostKeyValidator: hostKeyValidator,
/host/spi-builder-workspace/Sources/Citadel/Client.swift:293:35: warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
291 |             host: host,
292 |             port: port,
293 |             authenticationMethod: authenticationMethod,
    |                                   `- warning: implicit capture of 'authenticationMethod' requires that 'SSHAuthenticationMethod' conforms to 'Sendable'; this is an error in the Swift 6 language mode
294 |             hostKeyValidator: hostKeyValidator,
295 |             algorithms: algorithms,
/host/spi-builder-workspace/Sources/Citadel/SSHAuthenticationMethod.swift:6:20: note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  4 |
  5 | /// Represents an authentication method.
  6 | public final class SSHAuthenticationMethod: NIOSSHClientUserAuthenticationDelegate {
    |                    `- note: class 'SSHAuthenticationMethod' does not conform to the 'Sendable' protocol
  7 |     private enum Implementation {
  8 |         case custom(NIOSSHClientUserAuthenticationDelegate)
/host/spi-builder-workspace/Sources/Citadel/Client.swift:324:13: warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
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
    :
322 |     private func onNewSession(_ session: SSHClientSession) {
323 |         session.channel.closeFuture.whenComplete { [weak self] _ in
324 |             self?.onClose()
    |             `- warning: capture of 'self' with non-sendable type 'SSHClient?' in a '@Sendable' closure
325 |         }
326 |     }
/host/spi-builder-workspace/Sources/Citadel/Client.swift:359:35: warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
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
    :
357 |             host: host,
358 |             port: port,
359 |             authenticationMethod: self.authenticationMethod(),
    |                                   `- warning: implicit capture of 'self' requires that 'SSHClient' conforms to 'Sendable'; this is an error in the Swift 6 language mode
360 |             hostKeyValidator: self.hostKeyValidator,
361 |             protocolOptions: protocolOptions,
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:232:15: warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
230 |             channel.pipeline.handler(type: ClientHandshakeHandler.self).flatMap { handshakeHandler in
231 |                 handshakeHandler.authenticated
232 |             }.flatMap {
    |               `- warning: conformance of 'NIOSSHHandler' to 'Sendable' is unavailable
233 |                 channel.pipeline.handler(type: NIOSSHHandler.self)
234 |             }.map { sshHandler in
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:81:1: note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 79 |
 80 | @available(*, unavailable)
 81 | extension NIOSSHHandler: Sendable {}
    | `- note: conformance of 'NIOSSHHandler' to 'Sendable' has been explicitly marked unavailable here
 82 |
 83 | extension NIOSSHHandler {
/host/spi-builder-workspace/Sources/Citadel/ClientSession.swift:272:36: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 |         settings.protocolOptions = protocolOptions
271 |         settings.group = group
272 |         settings.channelHandlers = channelHandlers
    |                                    `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
273 |         settings.connectTimeout = connectTimeout
274 |
/host/spi-builder-workspace/Sources/Citadel/Client.swift:329: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
327 |
328 |     private func onClose() {
329 |         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
330 |             self.onDisconnect?()
    |             `- note: closure captures 'self' which is accessible to code in the current task
331 |
332 |             switch connectionSettings.reconnect.mode {
[948/952] Wrapping AST for Citadel for debugging
[950/959] Compiling CitadelServerExample Extensions.swift
[951/959] Emitting module CitadelServerExample
[952/959] Compiling CitadelServerExample BasicCommands.swift
[953/959] Compiling CitadelServerExample EchoShell.swift
[954/959] Compiling CitadelServerExample Server.swift
/host/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,
/host/spi-builder-workspace/Sources/Citadel/Server.swift:241:20: note: class 'SSHServer' does not conform to the 'Sendable' protocol
239 | /// The server can be closed using the `close()` method.
240 | /// - Note: This class is not thread safe.
241 | public final class SSHServer {
    |                    `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
242 |     let channel: Channel
243 |     let delegate: CitadelServerDelegate
/host/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
/host/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:76:36: warning: type 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
74 |     ) {
75 |         if case .password(.init(password: password)) = request.request, request.username == username {
76 |             return responsePromise.succeed(.success)
   |                                    `- warning: type 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
77 |         }
78 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/User Authentication/UserAuthenticationMethod.swift:211:13: note: enum 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
209 |
210 | /// The outcome of a user authentication attempt.
211 | public enum NIOSSHUserAuthenticationOutcome {
    |             `- note: enum 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
212 |     case success
213 |     case partialSuccess(remainingMethods: NIOSSHAvailableUserAuthenticationMethods)
/host/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
 3 | import Foundation
 4 | import NIO
 5 | import NIOSSH
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
 6 |
 7 | @main struct ExampleSSHServer {
/host/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:79:32: warning: type 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
77 |         }
78 |
79 |         return responsePromise.succeed(.failure)
   |                                `- warning: type 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
80 |     }
81 | }
/host/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/User Authentication/UserAuthenticationMethod.swift:211:13: note: enum 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
209 |
210 | /// The outcome of a user authentication attempt.
211 | public enum NIOSSHUserAuthenticationOutcome {
    |             `- note: enum 'NIOSSHUserAuthenticationOutcome' does not conform to the 'Sendable' protocol
212 |     case success
213 |     case partialSuccess(remainingMethods: NIOSSHAvailableUserAuthenticationMethods)
[955/959] Compiling CitadelServerExample Terminal.swift
[956/959] Compiling CitadelServerExample HostKeyFile.swift
[957/960] Wrapping AST for CitadelServerExample for debugging
[958/960] Write Objects.LinkFileList
[959/960] Linking CitadelServerExample
Build complete! (340.56s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-nio-ssh",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.4",
            "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" : "3.12.3",
            "upper_bound" : "4.0.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" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.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",
        "RemotePortForwardTests.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",
        "RemotePortForward/Client/RemotePortForward+Client.swift",
        "RemotePortForward/Server/RemotePortForward+Server.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",
        "SSHKeyTypeDetection.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.9"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:808cb2b2a6cec76654a3acbd283c6c2205bc60d2b29562c95b9f5147612f6d32
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.