The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Tiercel, reference master (2c025a), with Swift 6.1 for macOS (SPM) on 24 Aug 2026 23:27:56 UTC.

Swift 6 data race errors: 6

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Danie1s/Tiercel.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Danie1s/Tiercel
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 2c025a7 chore: bump version to 3.3.0
Cloned https://github.com/Danie1s/Tiercel.git
Revision (git rev-parse @):
2c025a7937ab65bc5b110c62c35ec1f2f72d4b5d
SUCCESS checkout https://github.com/Danie1s/Tiercel.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/Danie1s/Tiercel.git
https://github.com/Danie1s/Tiercel.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tiercel",
  "name" : "Tiercel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Tiercel",
      "targets" : [
        "Tiercel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Tiercel",
      "module_type" : "SwiftTarget",
      "name" : "Tiercel",
      "path" : "Sources",
      "product_memberships" : [
        "Tiercel"
      ],
      "sources" : [
        "Extensions/Array+Safe.swift",
        "Extensions/CodingUserInfoKey+Cache.swift",
        "Extensions/Data+Hash.swift",
        "Extensions/DispatchQueue+Safe.swift",
        "Extensions/Double+TaskInfo.swift",
        "Extensions/FileManager+AvailableCapacity.swift",
        "Extensions/Int64+TaskInfo.swift",
        "Extensions/OperationQueue+DispatchQueue.swift",
        "Extensions/String+Hash.swift",
        "General/Cache.swift",
        "General/Common.swift",
        "General/DownloadResumeData.swift",
        "General/DownloadTask.swift",
        "General/Executer.swift",
        "General/Notifications.swift",
        "General/Protected.swift",
        "General/SessionConfiguration.swift",
        "General/SessionDelegate.swift",
        "General/SessionManager.swift",
        "General/Task.swift",
        "General/TiercelError.swift",
        "General/URLConvertible.swift",
        "Utility/FileChecksumHelper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/24] Emitting module Tiercel
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:45:7: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | class SessionDelegate: NSObject {
    |       `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:47:14: warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 45 | class SessionDelegate: NSObject {
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
    |              `- warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 48 |
 49 |     func task<TaskType, R: Task<TaskType>>(for url: URL, as type: R.Type) -> R? {
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 41 |
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
    |          `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
 44 |     case duplicateURL(url: URLConvertible)
    |          `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
    |          `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 47 |     case headersMatchFailed
 48 |     case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 29 | public enum TiercelError: Error {
 30 |
 31 |     public enum CacheErrorReason {
    |                 `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
 32 |         case cannotCreateDirectory(path: String, error: Error)
 33 |         case cannotRemoveItem(path: String, error: Error)
    :
 48 |     case fileNamesMatchFailed
 49 |     case unacceptableStatusCode(code: Int)
 50 |     case cacheError(reason: CacheErrorReason)
    |          `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 51 | }
 52 |
[4/26] Compiling Tiercel URLConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:60:17: warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
 58 |         ioQueue.async {
 59 |             guard FileManager.default.fileExists(atPath: filePath) else {
 60 |                 completion(.failure(FileVerificationError.fileDoesnotExist(path: filePath)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 61 |                 return
 62 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:68:24: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
    :
 66 |                 let data = try Data(contentsOf: url, options: .mappedIfSafe)
 67 |                 var string: String
 68 |                 switch type {
    |                        `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
 69 |                 case .md5:
 70 |                     string = data.tr.md5
[5/26] Compiling Tiercel FileChecksumHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:60:17: warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
 58 |         ioQueue.async {
 59 |             guard FileManager.default.fileExists(atPath: filePath) else {
 60 |                 completion(.failure(FileVerificationError.fileDoesnotExist(path: filePath)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 61 |                 return
 62 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:68:24: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
    :
 66 |                 let data = try Data(contentsOf: url, options: .mappedIfSafe)
 67 |                 var string: String
 68 |                 switch type {
    |                        `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
 69 |                 case .md5:
 70 |                     string = data.tr.md5
[6/26] Compiling Tiercel Array+Safe.swift
[7/26] Compiling Tiercel CodingUserInfoKey+Cache.swift
[8/26] Compiling Tiercel Data+Hash.swift
[9/26] Compiling Tiercel Int64+TaskInfo.swift
[10/26] Compiling Tiercel OperationQueue+DispatchQueue.swift
[11/26] Compiling Tiercel String+Hash.swift
[12/26] Compiling Tiercel Task.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:290:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
288 |         if shouldReplay {
289 |             operationQueue.async {
290 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
291 |             }
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:290:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
288 |         if shouldReplay {
289 |             operationQueue.async {
290 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
291 |             }
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:310:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
308 |         if shouldReplay {
309 |             operationQueue.async {
310 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
311 |             }
312 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:310:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
308 |         if shouldReplay {
309 |             operationQueue.async {
310 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
311 |             }
312 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:329:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
327 |         if shouldReplay {
328 |             operationQueue.async {
329 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
330 |             }
331 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:329:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
327 |         if shouldReplay {
328 |             operationQueue.async {
329 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
330 |             }
331 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 41 |
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
    |          `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
 44 |     case duplicateURL(url: URLConvertible)
    |          `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
    |          `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 47 |     case headersMatchFailed
 48 |     case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 29 | public enum TiercelError: Error {
 30 |
 31 |     public enum CacheErrorReason {
    |                 `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
 32 |         case cannotCreateDirectory(path: String, error: Error)
 33 |         case cannotRemoveItem(path: String, error: Error)
    :
 48 |     case fileNamesMatchFailed
 49 |     case unacceptableStatusCode(code: Int)
 50 |     case cacheError(reason: CacheErrorReason)
    |          `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 51 | }
 52 |
[13/26] Compiling Tiercel TiercelError.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:290:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
288 |         if shouldReplay {
289 |             operationQueue.async {
290 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
291 |             }
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:290:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
288 |         if shouldReplay {
289 |             operationQueue.async {
290 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
291 |             }
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:310:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
308 |         if shouldReplay {
309 |             operationQueue.async {
310 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
311 |             }
312 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:310:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
308 |         if shouldReplay {
309 |             operationQueue.async {
310 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
311 |             }
312 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:329:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 60 | }
 61 |
 62 | public class Task<TaskType>: NSObject, Codable {
    |              `- note: generic class 'Task' does not conform to the 'Sendable' protocol
 63 |
 64 |     private enum CodingKeys: CodingKey {
    :
327 |         if shouldReplay {
328 |             operationQueue.async {
329 |                 self.execute(executer)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
330 |             }
331 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:329:30: warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
327 |         if shouldReplay {
328 |             operationQueue.async {
329 |                 self.execute(executer)
    |                              `- warning: capture of 'executer' with non-sendable type 'Executer<TaskType>' in a '@Sendable' closure
330 |             }
331 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 41 |
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
    |          `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 42 |     case unknown
 43 |     case invalidURL(url: URLConvertible)
 44 |     case duplicateURL(url: URLConvertible)
    |          `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 44 |     case duplicateURL(url: URLConvertible)
 45 |     case indexOutOfRange
 46 |     case fetchDownloadTaskFailed(url: URLConvertible)
    |          `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
 47 |     case headersMatchFailed
 48 |     case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 29 | public enum TiercelError: Error {
 30 |
 31 |     public enum CacheErrorReason {
    |                 `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
 32 |         case cannotCreateDirectory(path: String, error: Error)
 33 |         case cannotRemoveItem(path: String, error: Error)
    :
 48 |     case fileNamesMatchFailed
 49 |     case unacceptableStatusCode(code: Int)
 50 |     case cacheError(reason: CacheErrorReason)
    |          `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
 51 | }
 52 |
[14/26] Compiling Tiercel Executer.swift
[15/26] Compiling Tiercel Notifications.swift
[16/26] Compiling Tiercel DownloadResumeData.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:100:38: warning: capture of 'self' with non-sendable type 'DownloadTask?' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
 98 |                 currentRequestObservation = newValue?.observe(\.currentRequest,
 99 |                                                                options: .new) { [weak self] task, change in
100 |                     guard let self = self else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'DownloadTask?' in a '@Sendable' closure
101 |                     if let newRequest = change.newValue, let url = newRequest?.url {
102 |                         self.mutableState.write { $0.currentURL = url }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:287:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
285 |             executeControl()
286 |             operationQueue.async {
287 |                 self.completeWithLocalFile()
    |                 `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
288 |             }
289 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:556:56: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
554 |                              handler: @escaping Handler<DownloadTask>) -> Self {
555 |         operationQueue.async {
556 |             let (verificationCode, verificationType) = self.mutableState.read {
    |                                                        `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
557 |                 ($0.verificationCode, $0.verificationType)
558 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:560:37: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
558 |             }
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
    |                                     `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
561 |                 self.validation != .unkown {
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:572:86: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
570 |             }
571 |             let shouldValidate = self.mutableState.write { state -> Bool in
572 |                 state.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
    |                                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
    |                                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
573 |                 return state.status == .succeeded
574 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:560:37: warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
558 |             }
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
    |                                     `- warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
561 |                 self.validation != .unkown {
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:561:17: warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
561 |                 self.validation != .unkown {
    |                 `- warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
563 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:567:43: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
565 |                 self.mutableState.write {
566 |                     $0.verificationCode = code
567 |                     $0.verificationType = type
    |                                           `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
568 |                 }
569 |                 (self.delegate as? DownloadTaskDelegate)?.downloadTaskWillValidateFile(self)
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:572:86: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
570 |             }
571 |             let shouldValidate = self.mutableState.write { state -> Bool in
572 |                 state.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
    |                                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
573 |                 return state.status == .succeeded
574 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:217:42: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
215 |     @objc private func fixDelegateMethodError() {
216 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
217 |             let underlyingDownloadTask = self.mutableDownloadState.read { $0.underlyingDownloadTask }
    |                                          |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                          `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 |             underlyingDownloadTask?.suspend()
219 |             underlyingDownloadTask?.resume()
[17/26] Compiling Tiercel DownloadTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:100:38: warning: capture of 'self' with non-sendable type 'DownloadTask?' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
 98 |                 currentRequestObservation = newValue?.observe(\.currentRequest,
 99 |                                                                options: .new) { [weak self] task, change in
100 |                     guard let self = self else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'DownloadTask?' in a '@Sendable' closure
101 |                     if let newRequest = change.newValue, let url = newRequest?.url {
102 |                         self.mutableState.write { $0.currentURL = url }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:287:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
285 |             executeControl()
286 |             operationQueue.async {
287 |                 self.completeWithLocalFile()
    |                 `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
288 |             }
289 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:556:56: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
554 |                              handler: @escaping Handler<DownloadTask>) -> Self {
555 |         operationQueue.async {
556 |             let (verificationCode, verificationType) = self.mutableState.read {
    |                                                        `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
557 |                 ($0.verificationCode, $0.verificationType)
558 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:560:37: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
558 |             }
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
    |                                     `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
561 |                 self.validation != .unkown {
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:572:86: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
570 |             }
571 |             let shouldValidate = self.mutableState.write { state -> Bool in
572 |                 state.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
    |                                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
    |                                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
573 |                 return state.status == .succeeded
574 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:560:37: warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
558 |             }
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
    |                                     `- warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
561 |                 self.validation != .unkown {
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:561:17: warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
    :
559 |             if verificationCode == code &&
560 |                 verificationType == type &&
561 |                 self.validation != .unkown {
    |                 `- warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
562 |                 self.mutableDownloadState.write { $0.shouldValidateFile = false }
563 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:567:43: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
565 |                 self.mutableState.write {
566 |                     $0.verificationCode = code
567 |                     $0.verificationType = type
    |                                           `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
568 |                 }
569 |                 (self.delegate as? DownloadTaskDelegate)?.downloadTaskWillValidateFile(self)
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 30 | public enum FileChecksumHelper {
 31 |
 32 |     public enum VerificationType : Int {
    |                 `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
 33 |         case md5
 34 |         case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:572:86: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
570 |             }
571 |             let shouldValidate = self.mutableState.write { state -> Bool in
572 |                 state.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
    |                                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
573 |                 return state.status == .succeeded
574 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:217:42: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
215 |     @objc private func fixDelegateMethodError() {
216 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
217 |             let underlyingDownloadTask = self.mutableDownloadState.read { $0.underlyingDownloadTask }
    |                                          |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                          `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 |             underlyingDownloadTask?.suspend()
219 |             underlyingDownloadTask?.resume()
[18/26] Compiling Tiercel Cache.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:188:19: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
 27 | import Foundation
 28 |
 29 | public class Cache {
    |              `- note: class 'Cache' does not conform to the 'Sendable' protocol
 30 |
 31 |     private let ioQueue: DispatchQueue
    :
186 |     public func clearDiskCache(onMainQueue: Bool = true, handler: Handler<Cache>? = nil) {
187 |         ioQueue.async {
188 |             guard self.fileManager.fileExists(atPath: self.downloadPath) else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
189 |             do {
190 |                 try self.fileManager.removeItem(atPath: self.downloadPath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:197:30: warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
195 |             }
196 |             self.createDirectory()
197 |             if let handler = handler {
    |                              |- warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
198 |                 Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
199 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:215:48: warning: type 'Cache' does not conform to the 'Sendable' protocol
 27 | import Foundation
 28 |
 29 | public class Cache {
    |              `- note: class 'Cache' does not conform to the 'Sendable' protocol
 30 |
 31 |     private let ioQueue: DispatchQueue
    :
213 |                     let data = try Data(contentsOf: url)
214 |                     let decoder = PropertyListDecoder()
215 |                     decoder.userInfo[.cache] = self
    |                                                `- warning: type 'Cache' does not conform to the 'Sendable' protocol
216 |                     decoder.userInfo[.operationQueue] = operationQueue
217 |                     // 逐条解码:单个损坏条目只被跳过,不拖垮整个任务列表
[19/26] Compiling Tiercel Common.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:188:19: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
 27 | import Foundation
 28 |
 29 | public class Cache {
    |              `- note: class 'Cache' does not conform to the 'Sendable' protocol
 30 |
 31 |     private let ioQueue: DispatchQueue
    :
186 |     public func clearDiskCache(onMainQueue: Bool = true, handler: Handler<Cache>? = nil) {
187 |         ioQueue.async {
188 |             guard self.fileManager.fileExists(atPath: self.downloadPath) else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
189 |             do {
190 |                 try self.fileManager.removeItem(atPath: self.downloadPath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:197:30: warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
195 |             }
196 |             self.createDirectory()
197 |             if let handler = handler {
    |                              |- warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
198 |                 Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
199 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:215:48: warning: type 'Cache' does not conform to the 'Sendable' protocol
 27 | import Foundation
 28 |
 29 | public class Cache {
    |              `- note: class 'Cache' does not conform to the 'Sendable' protocol
 30 |
 31 |     private let ioQueue: DispatchQueue
    :
213 |                     let data = try Data(contentsOf: url)
214 |                     let decoder = PropertyListDecoder()
215 |                     decoder.userInfo[.cache] = self
    |                                                `- warning: type 'Cache' does not conform to the 'Sendable' protocol
216 |                     decoder.userInfo[.operationQueue] = operationQueue
217 |                     // 逐条解码:单个损坏条目只被跳过,不拖垮整个任务列表
[20/26] Compiling Tiercel SessionDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:45:7: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | class SessionDelegate: NSObject {
    |       `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:47:14: warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 45 | class SessionDelegate: NSObject {
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
    |              `- warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 48 |
 49 |     func task<TaskType, R: Task<TaskType>>(for url: URL, as type: R.Type) -> R? {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:82:21: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
  80 |             }
  81 |             operationQueue.async {
  82 |                 if !self.shouldCreatSession {
     |                     `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  83 |                     self.shouldCreatSession = true
  84 |                     let (status, maxConcurrentTasksLimit, runningTasks, tasks) = self.mutableState.read {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:89:55: warning: reference to captured var 'oldMaxConcurrentTasksLimit' in concurrently-executing code
  87 |                     if status == .running {
  88 |                         let restartTasks: [DownloadTask]
  89 |                         if maxConcurrentTasksLimit <= oldMaxConcurrentTasksLimit {
     |                                                       `- warning: reference to captured var 'oldMaxConcurrentTasksLimit' in concurrently-executing code
  90 |                             restartTasks = runningTasks + tasks.filter { $0.status == .waiting }
  91 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:396:17: warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
 394 |             // TODO: - 待优化
 395 |             operationQueue.async {
 396 |                 uniqueTasks.forEach {
     |                 `- warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:398:25: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 396 |                 uniqueTasks.forEach {
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
     |                         `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 399 |                     }
 400 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:396:17: warning: reference to captured var 'uniqueTasks' in concurrently-executing code
 394 |             // TODO: - 待优化
 395 |             operationQueue.async {
 396 |                 uniqueTasks.forEach {
     |                 `- warning: reference to captured var 'uniqueTasks' in concurrently-executing code
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:398:25: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 396 |                 uniqueTasks.forEach {
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
     |                         `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
 399 |                     }
 400 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:25: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |                         `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:65: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |                                                                 |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:25: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |                         `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:70: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:490:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 488 |     public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 489 |         operationQueue.async {
 490 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 491 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't suspend downloadTask"))
 492 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:490:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 488 |     public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 489 |         operationQueue.async {
 490 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 491 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't suspend downloadTask"))
 492 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:494:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 492 |                 return
 493 |             }
 494 |             task.suspend(onMainQueue: onMainQueue, handler: handler)
     |                                                             |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 495 |         }
 496 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:500:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 498 |     public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 499 |         operationQueue.async {
 500 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 501 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't suspend downloadTask"))
 502 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:500:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 498 |     public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 499 |         operationQueue.async {
 500 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 501 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't suspend downloadTask"))
 502 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:504:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 502 |                 return
 503 |             }
 504 |             task.suspend(onMainQueue: onMainQueue, handler: handler)
     |                                                             |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 505 |         }
 506 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:515:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 513 |     public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 514 |         operationQueue.async {
 515 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 516 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't cancel downloadTask"))
 517 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:515:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 513 |     public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 514 |         operationQueue.async {
 515 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 516 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't cancel downloadTask"))
 517 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:519:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 517 |                 return
 518 |             }
 519 |             task.cancel(onMainQueue: onMainQueue, handler: handler)
     |                                                            |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 520 |         }
 521 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:525:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 523 |     public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 524 |         operationQueue.async {
 525 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 526 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't cancel downloadTask"))
 527 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:525:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 523 |     public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 524 |         operationQueue.async {
 525 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 526 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't cancel downloadTask"))
 527 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:529:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 527 |                 return
 528 |             }
 529 |             task.cancel(onMainQueue: onMainQueue, handler: handler)
     |                                                            |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 530 |         }
 531 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:545:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 543 |     public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 544 |         operationQueue.async {
 545 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 546 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't remove downloadTask"))
 547 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:545:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 543 |     public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 544 |         operationQueue.async {
 545 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 546 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't remove downloadTask"))
 547 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:549:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 547 |                 return
 548 |             }
 549 |             task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
     |                                                                                    |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 550 |         }
 551 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:555:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 553 |     public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 554 |         operationQueue.async {
 555 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 556 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url),
 557 |                                 message: "can't remove downloadTask"))
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:555:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 553 |     public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 554 |         operationQueue.async {
 555 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 556 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url),
 557 |                                 message: "can't remove downloadTask"))
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:560:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 558 |                 return
 559 |             }
 560 |             task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
     |                                                                                    |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 561 |         }
 562 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:590:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 588 |     public func totalStart(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 589 |         operationQueue.async {
 590 |             self.mutableState.read { $0.tasks }.forEach { task in
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 591 |                 if task.status != .succeeded {
 592 |                     self._start(task)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:595:57: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 593 |                 }
 594 |             }
 595 |             Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
     |                                                         |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 596 |         }
 597 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:21: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 590 |             self.mutableState.read { $0.tasks }.forEach { task in
 591 |                 if task.status != .succeeded {
 592 |                     self._start(task)
     |                     `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
 593 |                 }
 594 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 599 |     public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 600 |         operationQueue.async {
 601 |             self.totalSuspendOnOperationQueue(onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 602 |         }
 603 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 599 |     public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 600 |         operationQueue.async {
 601 |             self.totalSuspendOnOperationQueue(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 602 |         }
 603 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:624:42: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 622 |     public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 623 |         operationQueue.async {
 624 |             let tasks: [DownloadTask]? = self.mutableState.write {
     |                                          `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 625 |                 guard $0.status != .succeeded && $0.status != .canceled else { return nil }
 626 |                 $0.status = .canceled
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:628:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 626 |                 $0.status = .canceled
 627 |                 $0.isSuspending = false
 628 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 629 |                 return $0.tasks
 630 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:628:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 626 |                 $0.status = .canceled
 627 |                 $0.isSuspending = false
 628 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 629 |                 return $0.tasks
 630 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:643:42: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 641 |     public func totalRemove(completely: Bool = false, onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 642 |         operationQueue.async {
 643 |             let tasks: [DownloadTask]? = self.mutableState.write {
     |                                          `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 644 |                 guard $0.status != .removed else { return nil }
 645 |                 $0.status = .removed
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:647:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 645 |                 $0.status = .removed
 646 |                 $0.isSuspending = false
 647 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 648 |                 return $0.tasks
 649 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:647:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 645 |                 $0.status = .removed
 646 |                 $0.isSuspending = false
 647 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 648 |                 return $0.tasks
 649 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:736:30: warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 734 |         }
 735 |         session?.getTasksWithCompletionHandler { [weak self] (dataTasks, uploadTasks, downloadTasks) in
 736 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
 737 |             dispatchPrecondition(condition: .onQueue(operationQueue))
 738 |             reconcile(
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:740:34: warning: capture of 'restorableTasks' with non-sendable type '[ObjectIdentifier : DownloadTask]' in a '@Sendable' closure
 738 |             reconcile(
 739 |                 downloadTasks: downloadTasks,
 740 |                 restorableTasks: restorableTasks,
     |                                  `- warning: capture of 'restorableTasks' with non-sendable type '[ObjectIdentifier : DownloadTask]' in a '@Sendable' closure
 741 |                 runningTaskIDs: runningTaskIDs
 742 |             )
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1000:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 998 |         guard fromRunningTask else { return }
 999 |         operationQueue.async {
1000 |             self.startNextTask()
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
1001 |         }
1002 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1127:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1125 |         if shouldReplay {
1126 |             operationQueue.async {
1127 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1128 |             }
1129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1127:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1125 |         if shouldReplay {
1126 |             operationQueue.async {
1127 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1128 |             }
1129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1146:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1144 |         if shouldReplay {
1145 |             operationQueue.async {
1146 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1147 |             }
1148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1146:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1144 |         if shouldReplay {
1145 |             operationQueue.async {
1146 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1147 |             }
1148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1165:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1163 |         if shouldReplay {
1164 |             operationQueue.async {
1165 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1166 |             }
1167 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1165:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1163 |         if shouldReplay {
1164 |             operationQueue.async {
1165 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1166 |             }
1167 |         }
[21/26] Compiling Tiercel SessionManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:45:7: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 43 | }
 44 |
 45 | class SessionDelegate: NSObject {
    |       `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:47:14: warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 45 | class SessionDelegate: NSObject {
 46 |
 47 |     weak var stateProvider: SessionStateProvider?
    |              `- warning: stored property 'stateProvider' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
 48 |
 49 |     func task<TaskType, R: Task<TaskType>>(for url: URL, as type: R.Type) -> R? {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:82:21: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
  80 |             }
  81 |             operationQueue.async {
  82 |                 if !self.shouldCreatSession {
     |                     `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  83 |                     self.shouldCreatSession = true
  84 |                     let (status, maxConcurrentTasksLimit, runningTasks, tasks) = self.mutableState.read {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:89:55: warning: reference to captured var 'oldMaxConcurrentTasksLimit' in concurrently-executing code
  87 |                     if status == .running {
  88 |                         let restartTasks: [DownloadTask]
  89 |                         if maxConcurrentTasksLimit <= oldMaxConcurrentTasksLimit {
     |                                                       `- warning: reference to captured var 'oldMaxConcurrentTasksLimit' in concurrently-executing code
  90 |                             restartTasks = runningTasks + tasks.filter { $0.status == .waiting }
  91 |                         } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:396:17: warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
 394 |             // TODO: - 待优化
 395 |             operationQueue.async {
 396 |                 uniqueTasks.forEach {
     |                 `- warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:398:25: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 396 |                 uniqueTasks.forEach {
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
     |                         `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 399 |                     }
 400 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:396:17: warning: reference to captured var 'uniqueTasks' in concurrently-executing code
 394 |             // TODO: - 待优化
 395 |             operationQueue.async {
 396 |                 uniqueTasks.forEach {
     |                 `- warning: reference to captured var 'uniqueTasks' in concurrently-executing code
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:398:25: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 396 |                 uniqueTasks.forEach {
 397 |                     if $0.status != .succeeded {
 398 |                         self._start($0)
     |                         `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
 399 |                     }
 400 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:25: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |                         `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:434:65: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 432 |     public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 433 |         operationQueue.async {
 434 |             self._start(url, onMainQueue: onMainQueue, handler: handler)
     |                                                                 |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 435 |         }
 436 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:25: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |                         `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:440:70: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 438 |     public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 439 |         operationQueue.async {
 440 |             self._start(task.url, onMainQueue: onMainQueue, handler: handler)
     |                                                                      |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 441 |         }
 442 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:490:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 488 |     public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 489 |         operationQueue.async {
 490 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 491 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't suspend downloadTask"))
 492 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:490:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 488 |     public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 489 |         operationQueue.async {
 490 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 491 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't suspend downloadTask"))
 492 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:494:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 492 |                 return
 493 |             }
 494 |             task.suspend(onMainQueue: onMainQueue, handler: handler)
     |                                                             |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 495 |         }
 496 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:500:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 498 |     public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 499 |         operationQueue.async {
 500 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 501 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't suspend downloadTask"))
 502 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:500:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 498 |     public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 499 |         operationQueue.async {
 500 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 501 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't suspend downloadTask"))
 502 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:504:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 502 |                 return
 503 |             }
 504 |             task.suspend(onMainQueue: onMainQueue, handler: handler)
     |                                                             |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 505 |         }
 506 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:515:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 513 |     public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 514 |         operationQueue.async {
 515 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 516 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't cancel downloadTask"))
 517 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:515:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 513 |     public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 514 |         operationQueue.async {
 515 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 516 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't cancel downloadTask"))
 517 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:519:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 517 |                 return
 518 |             }
 519 |             task.cancel(onMainQueue: onMainQueue, handler: handler)
     |                                                            |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 520 |         }
 521 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:525:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 523 |     public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 524 |         operationQueue.async {
 525 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 526 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't cancel downloadTask"))
 527 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:525:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 523 |     public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 524 |         operationQueue.async {
 525 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 526 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url), message: "can't cancel downloadTask"))
 527 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:529:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 527 |                 return
 528 |             }
 529 |             task.cancel(onMainQueue: onMainQueue, handler: handler)
     |                                                            |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 530 |         }
 531 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:545:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 543 |     public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 544 |         operationQueue.async {
 545 |             guard let task = self.fetchTask(url) else {
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 546 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't remove downloadTask"))
 547 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:545:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 543 |     public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 544 |         operationQueue.async {
 545 |             guard let task = self.fetchTask(url) else {
     |                                             `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
 546 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: url), message: "can't remove downloadTask"))
 547 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
   |                 `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 |     func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:549:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 547 |                 return
 548 |             }
 549 |             task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
     |                                                                                    |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 550 |         }
 551 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:555:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 553 |     public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 554 |         operationQueue.async {
 555 |             guard self.fetchTask(task.url) === task else {
     |                   `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 556 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url),
 557 |                                 message: "can't remove downloadTask"))
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:555:34: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 553 |     public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
 554 |         operationQueue.async {
 555 |             guard self.fetchTask(task.url) === task else {
     |                                  `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 556 |                 self.log(.error(TiercelError.fetchDownloadTaskFailed(url: task.url),
 557 |                                 message: "can't remove downloadTask"))
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:560:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
 558 |                 return
 559 |             }
 560 |             task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
     |                                                                                    |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
     |                                                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 561 |         }
 562 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:590:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 588 |     public func totalStart(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 589 |         operationQueue.async {
 590 |             self.mutableState.read { $0.tasks }.forEach { task in
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 591 |                 if task.status != .succeeded {
 592 |                     self._start(task)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:595:57: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 593 |                 }
 594 |             }
 595 |             Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
     |                                                         |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 596 |         }
 597 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:21: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 590 |             self.mutableState.read { $0.tasks }.forEach { task in
 591 |                 if task.status != .succeeded {
 592 |                     self._start(task)
     |                     `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
 593 |                 }
 594 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 599 |     public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 600 |         operationQueue.async {
 601 |             self.totalSuspendOnOperationQueue(onMainQueue: onMainQueue, handler: handler)
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 602 |         }
 603 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 599 |     public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 600 |         operationQueue.async {
 601 |             self.totalSuspendOnOperationQueue(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 602 |         }
 603 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:624:42: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 622 |     public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 623 |         operationQueue.async {
 624 |             let tasks: [DownloadTask]? = self.mutableState.write {
     |                                          `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 625 |                 guard $0.status != .succeeded && $0.status != .canceled else { return nil }
 626 |                 $0.status = .canceled
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:628:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 626 |                 $0.status = .canceled
 627 |                 $0.isSuspending = false
 628 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 629 |                 return $0.tasks
 630 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:628:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 626 |                 $0.status = .canceled
 627 |                 $0.isSuspending = false
 628 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 629 |                 return $0.tasks
 630 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:643:42: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 641 |     public func totalRemove(completely: Bool = false, onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
 642 |         operationQueue.async {
 643 |             let tasks: [DownloadTask]? = self.mutableState.write {
     |                                          `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
 644 |                 guard $0.status != .removed else { return nil }
 645 |                 $0.status = .removed
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:647:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
 645 |                 $0.status = .removed
 646 |                 $0.isSuspending = false
 647 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 648 |                 return $0.tasks
 649 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:647:82: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
 645 |                 $0.status = .removed
 646 |                 $0.isSuspending = false
 647 |                 $0.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
     |                                                                                  |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 648 |                 return $0.tasks
 649 |             }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:736:30: warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 734 |         }
 735 |         session?.getTasksWithCompletionHandler { [weak self] (dataTasks, uploadTasks, downloadTasks) in
 736 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
 737 |             dispatchPrecondition(condition: .onQueue(operationQueue))
 738 |             reconcile(
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:740:34: warning: capture of 'restorableTasks' with non-sendable type '[ObjectIdentifier : DownloadTask]' in a '@Sendable' closure
 738 |             reconcile(
 739 |                 downloadTasks: downloadTasks,
 740 |                 restorableTasks: restorableTasks,
     |                                  `- warning: capture of 'restorableTasks' with non-sendable type '[ObjectIdentifier : DownloadTask]' in a '@Sendable' closure
 741 |                 runningTaskIDs: runningTaskIDs
 742 |             )
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:42:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 40 | }
 41 |
 42 | public class DownloadTask: Task<DownloadTask> {
    |              `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 43 |
 44 |     private enum CallbackSource {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1000:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
 998 |         guard fromRunningTask else { return }
 999 |         operationQueue.async {
1000 |             self.startNextTask()
     |             `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
1001 |         }
1002 |     }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1127:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1125 |         if shouldReplay {
1126 |             operationQueue.async {
1127 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1128 |             }
1129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1127:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1125 |         if shouldReplay {
1126 |             operationQueue.async {
1127 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1128 |             }
1129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1146:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1144 |         if shouldReplay {
1145 |             operationQueue.async {
1146 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1147 |             }
1148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1146:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1144 |         if shouldReplay {
1145 |             operationQueue.async {
1146 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1147 |             }
1148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1165:17: warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1163 |         if shouldReplay {
1164 |             operationQueue.async {
1165 |                 executer.execute(self)
     |                 `- warning: capture of 'executer' with non-sendable type 'Executer<SessionManager>' in a '@Sendable' closure
1166 |             }
1167 |         }
/Users/admin/builder/spi-builder-workspace/Sources/General/Executer.swift:31:14: note: generic class 'Executer' does not conform to the 'Sendable' protocol
29 | public typealias Handler<T> = (T) -> ()
30 |
31 | public class Executer<T> {
   |              `- note: generic class 'Executer' does not conform to the 'Sendable' protocol
32 |     private let onMainQueue: Bool
33 |     private let handler: Handler<T>?
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:1165:34: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
  31 | #endif
  32 |
  33 | public class SessionManager {
     |              `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
  34 |
  35 |     enum MaintainTasksAction {
     :
1163 |         if shouldReplay {
1164 |             operationQueue.async {
1165 |                 executer.execute(self)
     |                                  `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
1166 |             }
1167 |         }
[22/26] Compiling Tiercel DispatchQueue+Safe.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 |         } else {
36 |             DispatchQueue.main.async {
37 |                 block()
   |                 |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
   |                 `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 |             }
39 |         }
[23/26] Compiling Tiercel Double+TaskInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 |         } else {
36 |             DispatchQueue.main.async {
37 |                 block()
   |                 |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
   |                 `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 |             }
39 |         }
[24/26] Compiling Tiercel FileManager+AvailableCapacity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 |         } else {
36 |             DispatchQueue.main.async {
37 |                 block()
   |                 |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
   |                 `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 |             }
39 |         }
[25/26] Compiling Tiercel Protected.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:108:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
106 |             let workItem = DispatchWorkItem { [weak self, weak queue] in
107 |                 queue?.async {
108 |                     work()
    |                     |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |                 }
110 |                 self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:140:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
138 |             let workItem = DispatchWorkItem { [weak self, weak queue] in
139 |                 queue?.async {
140 |                     work()
    |                     |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
141 |                 }
142 |                 self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:149:21: warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
116 | }
117 |
118 | final public class Throttler {
    |                    `- note: class 'Throttler' does not conform to the 'Sendable' protocol
119 |
120 |     private let dispatchQueue: DispatchQueue
    :
147 |                 self.workItem = workItem
148 |                 dispatchQueue.asyncAfter(deadline: .now() + timeInterval) { [weak self] in
149 |                     self?.workItem?.perform()
    |                     `- warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
150 |                 }
151 |             } else {
[26/26] Compiling Tiercel SessionConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:108:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
106 |             let workItem = DispatchWorkItem { [weak self, weak queue] in
107 |                 queue?.async {
108 |                     work()
    |                     |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |                 }
110 |                 self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:140:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
138 |             let workItem = DispatchWorkItem { [weak self, weak queue] in
139 |                 queue?.async {
140 |                     work()
    |                     |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
141 |                 }
142 |                 self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:149:21: warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
116 | }
117 |
118 | final public class Throttler {
    |                    `- note: class 'Throttler' does not conform to the 'Sendable' protocol
119 |
120 |     private let dispatchQueue: DispatchQueue
    :
147 |                 self.workItem = workItem
148 |                 dispatchQueue.asyncAfter(deadline: .now() + timeInterval) { [weak self] in
149 |                     self?.workItem?.perform()
    |                     `- warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
150 |                 }
151 |             } else {
Build complete! (5.10s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tiercel",
  "name" : "Tiercel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Tiercel",
      "targets" : [
        "Tiercel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Tiercel",
      "module_type" : "SwiftTarget",
      "name" : "Tiercel",
      "path" : "Sources",
      "product_memberships" : [
        "Tiercel"
      ],
      "sources" : [
        "Extensions/Array+Safe.swift",
        "Extensions/CodingUserInfoKey+Cache.swift",
        "Extensions/Data+Hash.swift",
        "Extensions/DispatchQueue+Safe.swift",
        "Extensions/Double+TaskInfo.swift",
        "Extensions/FileManager+AvailableCapacity.swift",
        "Extensions/Int64+TaskInfo.swift",
        "Extensions/OperationQueue+DispatchQueue.swift",
        "Extensions/String+Hash.swift",
        "General/Cache.swift",
        "General/Common.swift",
        "General/DownloadResumeData.swift",
        "General/DownloadTask.swift",
        "General/Executer.swift",
        "General/Notifications.swift",
        "General/Protected.swift",
        "General/SessionConfiguration.swift",
        "General/SessionDelegate.swift",
        "General/SessionManager.swift",
        "General/Task.swift",
        "General/TiercelError.swift",
        "General/URLConvertible.swift",
        "Utility/FileChecksumHelper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.