Build Information
Successful build of blue-triangle, reference 3.15.0 (a6e303
), with Swift 6.1 for macOS (SPM) on 2 Sep 2025 19:18:29 UTC.
Swift 6 data race errors: 41
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
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | internal static var enableAllTracking: Bool = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:25: warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | internal static var enableAllTracking: Bool = {
| |- warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | let value = configRepo.isEnableAllTracking()
119 | return value
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:122:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
120 | }()
121 |
122 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
124 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:127:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
125 | }()
126 |
127 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
128 | let configFetcher = BTTConfigurationFetcher()
129 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:134:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
132 | }()
133 |
134 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 | let configFetcher = BTTConfigurationFetcher()
136 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:144:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
142 | private static let lock = NSLock()
143 | private static let trackingLock = NSRecursiveLock()
144 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | #if os(iOS)
146 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:185:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
183 | }
184 |
185 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
186 | configuration.makeSession()
187 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:240:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
238 | }
239 |
240 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | configuration.makeLogger()
242 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:244:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
242 | }()
243 |
244 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
245 | configuration.uploaderConfiguration.makeUploader(
246 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:252:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | }()
251 |
252 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 | configuration.timerConfiguration.makeTimerFactory(
254 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:258:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
256 | }()
257 |
258 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
259 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
260 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:262:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
260 | }()
261 |
262 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
263 | sessionData()?.shouldNetworkCapture ?? false
264 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:266:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
264 | }()
265 |
266 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | sessionData()?.shouldGroupedViewCapture ?? false
268 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:278:36: warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
276 | /// enable/disable state via the Remote Configuration Updater.
277 | ///
278 | public private(set) static var initialized = false
| |- warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:280:24: warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 | public private(set) static var initialized = false
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 | return makeCapturedRequestCollector()
282 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:284:24: warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
282 | }()
283 |
284 | private static var capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
285 | return makeCapturedGroupRequestCollector()
286 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:288:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
286 | }()
287 |
288 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
290 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:293:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
291 |
292 | //Cache components
293 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
294 | PayloadCache.init(configuration.cacheMemoryLimit,
295 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:956:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
954 | }
955 |
956 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| `- note: closure captures 'page' which is accessible to code in the current task
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:957:45: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
955 |
956 | Task {
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:isGroupTimer:)' risks causing data races between actor-isolated and task-isolated uses
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:985:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
983 |
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:986:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:991:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
989 |
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:992:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1001:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 | /// - tuple: The asynchronously-delivered tuple containing the request contents as a Data instance and a URLResponse.
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| `- note: closure captures 'timer' which is accessible to code in the current task
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1002:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1007:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1005 |
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| `- note: closure captures 'timer' which is accessible to code in the current task
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1008:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:request:error:)' risks causing data races between actor-isolated and task-isolated uses
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1021:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1019 |
1020 | internal static func startGroupTimerRequest(page : Page, startTime : Millisecond) async {
1021 | await capturedGroupedViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1022 | }
1023 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1034:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1032 | //Actions
1033 | internal static func startActionTimerRequest(page : Page, startTime : Millisecond) async{
1034 | await capturedActionsViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1035 | }
1036 |
[132/134] Compiling BlueTriangle Device.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:271:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
248 | // MARK: - Supporting Types
249 | extension BTTimer {
250 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
251 | let timeIntervalProvider: () -> TimeInterval
252 |
:
269 | }
270 |
271 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
272 | timeIntervalProvider: { Date().timeIntervalSince1970 }
273 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:22:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | final public class BlueTriangle: NSObject {
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | internal static var configuration = BlueTriangleConfiguration()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
23 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | internal static var enableAllTracking: Bool = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:25: warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | internal static var enableAllTracking: Bool = {
| |- warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | let value = configRepo.isEnableAllTracking()
119 | return value
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:122:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
120 | }()
121 |
122 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
124 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:127:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
125 | }()
126 |
127 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
128 | let configFetcher = BTTConfigurationFetcher()
129 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:134:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
132 | }()
133 |
134 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 | let configFetcher = BTTConfigurationFetcher()
136 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:144:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
142 | private static let lock = NSLock()
143 | private static let trackingLock = NSRecursiveLock()
144 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | #if os(iOS)
146 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:185:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
183 | }
184 |
185 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
186 | configuration.makeSession()
187 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:240:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
238 | }
239 |
240 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | configuration.makeLogger()
242 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:244:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
242 | }()
243 |
244 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
245 | configuration.uploaderConfiguration.makeUploader(
246 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:252:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | }()
251 |
252 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 | configuration.timerConfiguration.makeTimerFactory(
254 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:258:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
256 | }()
257 |
258 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
259 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
260 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:262:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
260 | }()
261 |
262 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
263 | sessionData()?.shouldNetworkCapture ?? false
264 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:266:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
264 | }()
265 |
266 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | sessionData()?.shouldGroupedViewCapture ?? false
268 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:278:36: warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
276 | /// enable/disable state via the Remote Configuration Updater.
277 | ///
278 | public private(set) static var initialized = false
| |- warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:280:24: warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 | public private(set) static var initialized = false
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 | return makeCapturedRequestCollector()
282 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:284:24: warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
282 | }()
283 |
284 | private static var capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
285 | return makeCapturedGroupRequestCollector()
286 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:288:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
286 | }()
287 |
288 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
290 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:293:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
291 |
292 | //Cache components
293 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
294 | PayloadCache.init(configuration.cacheMemoryLimit,
295 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:956:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
954 | }
955 |
956 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| `- note: closure captures 'page' which is accessible to code in the current task
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:957:45: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
955 |
956 | Task {
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:isGroupTimer:)' risks causing data races between actor-isolated and task-isolated uses
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:985:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
983 |
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:986:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:991:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
989 |
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:992:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1001:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 | /// - tuple: The asynchronously-delivered tuple containing the request contents as a Data instance and a URLResponse.
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| `- note: closure captures 'timer' which is accessible to code in the current task
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1002:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1007:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1005 |
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| `- note: closure captures 'timer' which is accessible to code in the current task
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1008:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:request:error:)' risks causing data races between actor-isolated and task-isolated uses
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1021:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1019 |
1020 | internal static func startGroupTimerRequest(page : Page, startTime : Millisecond) async {
1021 | await capturedGroupedViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1022 | }
1023 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1034:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1032 | //Actions
1033 | internal static func startActionTimerRequest(page : Page, startTime : Millisecond) async{
1034 | await capturedActionsViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1035 | }
1036 |
[133/134] Compiling BlueTriangle DisableModeSessionManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:271:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
248 | // MARK: - Supporting Types
249 | extension BTTimer {
250 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
251 | let timeIntervalProvider: () -> TimeInterval
252 |
:
269 | }
270 |
271 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
272 | timeIntervalProvider: { Date().timeIntervalSince1970 }
273 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:22:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | final public class BlueTriangle: NSObject {
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | internal static var configuration = BlueTriangleConfiguration()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
23 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | internal static var enableAllTracking: Bool = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:25: warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | internal static var enableAllTracking: Bool = {
| |- warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | let value = configRepo.isEnableAllTracking()
119 | return value
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:122:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
120 | }()
121 |
122 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
124 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:127:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
125 | }()
126 |
127 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
128 | let configFetcher = BTTConfigurationFetcher()
129 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:134:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
132 | }()
133 |
134 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 | let configFetcher = BTTConfigurationFetcher()
136 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:144:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
142 | private static let lock = NSLock()
143 | private static let trackingLock = NSRecursiveLock()
144 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | #if os(iOS)
146 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:185:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
183 | }
184 |
185 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
186 | configuration.makeSession()
187 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:240:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
238 | }
239 |
240 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | configuration.makeLogger()
242 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:244:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
242 | }()
243 |
244 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
245 | configuration.uploaderConfiguration.makeUploader(
246 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:252:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | }()
251 |
252 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 | configuration.timerConfiguration.makeTimerFactory(
254 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:258:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
256 | }()
257 |
258 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
259 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
260 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:262:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
260 | }()
261 |
262 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
263 | sessionData()?.shouldNetworkCapture ?? false
264 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:266:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
264 | }()
265 |
266 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | sessionData()?.shouldGroupedViewCapture ?? false
268 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:278:36: warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
276 | /// enable/disable state via the Remote Configuration Updater.
277 | ///
278 | public private(set) static var initialized = false
| |- warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:280:24: warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 | public private(set) static var initialized = false
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 | return makeCapturedRequestCollector()
282 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:284:24: warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
282 | }()
283 |
284 | private static var capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
285 | return makeCapturedGroupRequestCollector()
286 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:288:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
286 | }()
287 |
288 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
290 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:293:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
291 |
292 | //Cache components
293 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
294 | PayloadCache.init(configuration.cacheMemoryLimit,
295 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:956:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
954 | }
955 |
956 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| `- note: closure captures 'page' which is accessible to code in the current task
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:957:45: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
955 |
956 | Task {
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:isGroupTimer:)' risks causing data races between actor-isolated and task-isolated uses
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:985:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
983 |
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:986:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:991:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
989 |
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:992:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1001:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 | /// - tuple: The asynchronously-delivered tuple containing the request contents as a Data instance and a URLResponse.
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| `- note: closure captures 'timer' which is accessible to code in the current task
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1002:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1007:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1005 |
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| `- note: closure captures 'timer' which is accessible to code in the current task
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1008:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:request:error:)' risks causing data races between actor-isolated and task-isolated uses
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1021:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1019 |
1020 | internal static func startGroupTimerRequest(page : Page, startTime : Millisecond) async {
1021 | await capturedGroupedViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1022 | }
1023 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1034:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1032 | //Actions
1033 | internal static func startActionTimerRequest(page : Page, startTime : Millisecond) async{
1034 | await capturedActionsViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1035 | }
1036 |
[134/134] Compiling BlueTriangle BTTConfigurationFetcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:271:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
248 | // MARK: - Supporting Types
249 | extension BTTimer {
250 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
251 | let timeIntervalProvider: () -> TimeInterval
252 |
:
269 | }
270 |
271 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
272 | timeIntervalProvider: { Date().timeIntervalSince1970 }
273 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:22:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | final public class BlueTriangle: NSObject {
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | internal static var configuration = BlueTriangleConfiguration()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |
22 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
23 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | internal static var enableAllTracking: Bool = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:25: warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | internal static var enableAllTracking: Bool = {
| |- warning: static property 'enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | let value = configRepo.isEnableAllTracking()
119 | return value
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:122:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
120 | }()
121 |
122 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
124 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:127:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
125 | }()
126 |
127 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
128 | let configFetcher = BTTConfigurationFetcher()
129 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:134:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
132 | }()
133 |
134 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 | let configFetcher = BTTConfigurationFetcher()
136 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:144:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
142 | private static let lock = NSLock()
143 | private static let trackingLock = NSRecursiveLock()
144 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | #if os(iOS)
146 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:185:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
183 | }
184 |
185 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
186 | configuration.makeSession()
187 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:240:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
238 | }
239 |
240 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | configuration.makeLogger()
242 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:244:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
242 | }()
243 |
244 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
245 | configuration.uploaderConfiguration.makeUploader(
246 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:252:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | }()
251 |
252 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 | configuration.timerConfiguration.makeTimerFactory(
254 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:258:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
256 | }()
257 |
258 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
259 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
260 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:262:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
260 | }()
261 |
262 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
263 | sessionData()?.shouldNetworkCapture ?? false
264 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:266:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
264 | }()
265 |
266 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | sessionData()?.shouldGroupedViewCapture ?? false
268 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:278:36: warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
276 | /// enable/disable state via the Remote Configuration Updater.
277 | ///
278 | public private(set) static var initialized = false
| |- warning: static property 'initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:280:24: warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 | public private(set) static var initialized = false
279 |
280 | private static var capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property 'capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 | return makeCapturedRequestCollector()
282 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:284:24: warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
282 | }()
283 |
284 | private static var capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property 'capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
285 | return makeCapturedGroupRequestCollector()
286 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:288:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
286 | }()
287 |
288 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
290 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:293:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
291 |
292 | //Cache components
293 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
294 | PayloadCache.init(configuration.cacheMemoryLimit,
295 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:956:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
954 | }
955 |
956 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| `- note: closure captures 'page' which is accessible to code in the current task
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:957:45: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
955 |
956 | Task {
957 | await capturedRequestCollector?.start(page: page, startTime: startTime, isGroupTimer: isGroupTimer)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:isGroupTimer:)' risks causing data races between actor-isolated and task-isolated uses
958 | }
959 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:985:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
983 |
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:986:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
984 | static func captureRequest(timer: InternalTimer, response: URLResponse?) {
985 | Task {
986 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
987 | }
988 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:991:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
989 |
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| `- note: closure captures 'timer' which is accessible to code in the current task
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:992:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
990 | internal static func captureRequest(timer: InternalTimer, response: CustomResponse) {
991 | Task {
992 | await capturedRequestCollector?.collect(timer: timer, response: response)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
993 | }
994 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1001:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
999 | /// - tuple: The asynchronously-delivered tuple containing the request contents as a Data instance and a URLResponse.
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| `- note: closure captures 'timer' which is accessible to code in the current task
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1002:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1000 | static func captureRequest(timer: InternalTimer, tuple: (Data, URLResponse)) {
1001 | Task {
1002 | await capturedRequestCollector?.collect(timer: timer, response: tuple.1)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:response:)' risks causing data races between actor-isolated and task-isolated uses
1003 | }
1004 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1007:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1005 |
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| `- note: closure captures 'timer' which is accessible to code in the current task
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1008:45: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
1006 | static func captureRequest(timer: InternalTimer, request : URLRequest, error: Error?) {
1007 | Task {
1008 | await capturedRequestCollector?.collect(timer: timer, request: request, error: error)
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'timer' to actor-isolated instance method 'collect(timer:request:error:)' risks causing data races between actor-isolated and task-isolated uses
1009 | }
1010 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1021:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1019 |
1020 | internal static func startGroupTimerRequest(page : Page, startTime : Millisecond) async {
1021 | await capturedGroupedViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1022 | }
1023 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:1034:52: warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
1032 | //Actions
1033 | internal static func startActionTimerRequest(page : Page, startTime : Millisecond) async{
1034 | await capturedActionsViewRequestCollector?.start(page: page, startTime: startTime)
| |- warning: sending 'page' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'page' to actor-isolated instance method 'start(page:startTime:)' risks causing data races between actor-isolated and task-isolated uses
1035 | }
1036 |
Build complete! (10.37s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "blue-triangle",
"name" : "blue-triangle",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
},
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "BlueTriangle",
"targets" : [
"BlueTriangle"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ObjcCompatibilityTests",
"module_type" : "ClangTarget",
"name" : "ObjcCompatibilityTests",
"path" : "Tests/ObjcCompatibilityTests",
"sources" : [
"ObjcCompatibilityTests.m"
],
"target_dependencies" : [
"BlueTriangle"
],
"type" : "test"
},
{
"c99name" : "BlueTriangleTests",
"module_type" : "SwiftTarget",
"name" : "BlueTriangleTests",
"path" : "Tests/BlueTriangleTests",
"sources" : [
"AnyCodableTests.swift",
"App/CollectionViewController.swift",
"App/Extensions/UIColor+Utils.swift",
"App/ImageCell.swift",
"App/Models/Album.swift",
"App/Models/Photo.swift",
"App/Models/SingleSection.swift",
"App/Models/ViewState.swift",
"App/NetworkClientMock.swift",
"BTTConfigurationFetcherTests.swift",
"BTTConfigurationRepoTests.swift",
"BTTConfigurationUpdaterTests.swift",
"BTTimerTests.swift",
"BlueTriangleTests.swift",
"CaptureRateProbabilityTest.swift",
"CaptureTimerManagerTests.swift",
"ContentTypeTests.swift",
"CrashReportManagerTests.swift",
"DeviceTests.swift",
"InitiatorTypeTests.swift",
"Mocks/CaptureTimerManagerMock.swift",
"Mocks/CapturedRequestCollectorMock.swift",
"Mocks/CrashReportPersistenceMock.swift",
"Mocks/LoggerMock.swift",
"Mocks/Mock.swift",
"Mocks/MockBTTConfigurationFetcher.swift",
"Mocks/MockBTTConfigurationRepo.swift",
"Mocks/MockRemoteConfigURL.swift",
"Mocks/PerformanceMonitorMock.swift",
"Mocks/ResourceUsageMock.swift",
"Mocks/SystemLoggerMock.swift",
"Mocks/URLProtocolMock.swift",
"Mocks/UploaderMock.swift",
"NetworkCaptureDelegateTests.swift",
"PersistenceTests.swift",
"RequestCacheTests.swift",
"RequestCollectionTests.swift",
"RequestCollectorTests.swift",
"ResourceUsageTests.swift",
"TimerRequestBuilderTests.swift",
"UploaderTests.swift",
"UtilityTests.swift"
],
"target_dependencies" : [
"BlueTriangle"
],
"type" : "test"
},
{
"c99name" : "BlueTriangle",
"module_type" : "SwiftTarget",
"name" : "BlueTriangle",
"path" : "Sources/BlueTriangle",
"product_memberships" : [
"BlueTriangle"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AppEventObserver.swift",
"BTLogger.swift",
"BTSignalCrashReporter.swift",
"BTTimer.swift",
"BlueTriangle.swift",
"BlueTriangleConfiguration.swift",
"ClaritySupport/ClaritySessionConnector.swift",
"Constants.swift",
"CrashReportManager.swift",
"CrashReportPersistence.swift",
"Device.swift",
"DisableModeSessionManager.swift",
"DynamicConfig/BTTConfigurationFetcher.swift",
"DynamicConfig/BTTConfigurationRepo.swift",
"DynamicConfig/BTTConfigurationUpdater.swift",
"DynamicConfig/BTTRemoteConfig.swift",
"DynamicConfig/BTTSavedRemoteConfig.swift",
"DynamicConfig/BTTStoredConfigSyncer.swift",
"DynamicConfig/RemoteConfigAckReporter.swift",
"DynamicConfig/SessionStore.swift",
"Extensions/Array+Vitals.swift",
"Extensions/Bool+Utils.swift",
"Extensions/Bundle+Utils.swift",
"Extensions/Data+Utils.swift",
"Extensions/Date+Utils.swift",
"Extensions/HTTPURLResponse+ContentType.swift",
"Extensions/JSONDecoder+Utils.swift",
"Extensions/NSException+Utils.swift",
"Extensions/NSLocking+Utils.swift",
"Extensions/NSNumber+Utils.swift",
"Extensions/NWPathMonitor+Combine.swift",
"Extensions/NotificationName+Platform.swift",
"Extensions/OperatingSystemVersion+Utils.swift",
"Extensions/Publisher+Retry.swift",
"Extensions/Task+Utils.swift",
"Extensions/TimeInterval+Utils.swift",
"Extensions/URL+ExpressibleByStringLiteral.swift",
"Extensions/URLSession+NetworkCapture.swift",
"Extensions/URLSession+Networking.swift",
"Extensions/URLSession+Publisher.swift",
"Extensions/UserDefault+Utils.swift",
"Identifier.swift",
"InternalTimer.swift",
"MetricKit/CrashReportResponse.swift",
"MetricKit/CrashSignal.swift",
"MetricKit/DignosticWatchDog.swift",
"Millisecond.swift",
"Models/AnyCodable.swift",
"Models/CapturedRequest.swift",
"Models/CrashReport.swift",
"Models/CustomCategories.swift",
"Models/CustomNumbers.swift",
"Models/CustomVariables.swift",
"Models/ErrorReport.swift",
"Models/NativeAppProperties.swift",
"Models/Page.swift",
"Models/PageTimeInterval.swift",
"Models/PerformanceReport.swift",
"Models/PurchaseConfirmation.swift",
"Models/ResourceUsageMeasurement.swift",
"Models/Session.swift",
"Models/TimerRequest.swift",
"NetworkCapture/ActionRequestCollection.swift",
"NetworkCapture/ActionRequestCollector.swift",
"NetworkCapture/BTTimerNetStateAccumulator.swift",
"NetworkCapture/CaptureTimerManager.swift",
"NetworkCapture/CapturedActionRequestCollector.swift",
"NetworkCapture/CapturedGroupRequestCollector.swift",
"NetworkCapture/CapturedRequestBuilder.swift",
"NetworkCapture/CapturedRequestCollector.swift",
"NetworkCapture/GroupRequestCollection.swift",
"NetworkCapture/NetworkCaptureConfiguration.swift",
"NetworkCapture/NetworkCaptureTracker.swift",
"NetworkCapture/NetworkStateMonitor.swift",
"NetworkCapture/NetworkTelephonyHandler.swift",
"NetworkCapture/RequestCollection.swift",
"NetworkCaptureSessionDelegate.swift",
"Offline/Payload.swift",
"Offline/PayloadCache.swift",
"Persistence/File.swift",
"Persistence/Persistence.swift",
"Persistence/PersistenceError.swift",
"Persistence/UserLocation.swift",
"Protocols/CaptureTimerManaging.swift",
"Protocols/CapturedActionRequestCollecting.swift",
"Protocols/CapturedGroupRequestCollecting.swift",
"Protocols/CapturedRequestCollecting.swift",
"Protocols/CrashReportManaging.swift",
"Protocols/CrashReportPersisting.swift",
"Protocols/FileLocation.swift",
"Protocols/Logging.swift",
"Protocols/PerformanceMonitoring.swift",
"Protocols/RequestFailureHandling.swift",
"Protocols/ResourceMeasuring.swift",
"Protocols/SystemLogging.swift",
"Protocols/URLRequestConvertible.swift",
"Protocols/Uploading.swift",
"Request.swift",
"RequestCache.swift",
"RequestFailureHandler.swift",
"SessionManager.swift",
"TimerRequestBuilder.swift",
"Uploader.swift",
"Version.swift",
"Vitals/ANR/ANRPerformanceMonitor.swift",
"Vitals/ANR/ANRTrace/MainThreadStackTraceProvider.swift",
"Vitals/ANR/ANRWatchDog.swift",
"Vitals/ANR/MainThreadObserver.swift",
"Vitals/DispatchSourceTimerPerformanceMonitor.swift",
"Vitals/DisplayLinkPerformanceMonitor.swift",
"Vitals/GroupTracking/BTActionTracker.swift",
"Vitals/GroupTracking/BTGroupTimer.swift",
"Vitals/GroupTracking/BTTimerGroupManager.swift",
"Vitals/Launch/LaunchTimeMonitor.swift",
"Vitals/Launch/LaunchTimeReporter.swift",
"Vitals/Memory/MemoryWarningWatchDog.swift",
"Vitals/PerformanceMonitorBuilder.swift",
"Vitals/ResourceUsage.swift",
"Vitals/RunLoopServices.swift",
"Vitals/ScreenTracker/BTTScreenLifecycleTracker.swift",
"Vitals/ScreenTracker/BTTScreenTracker.swift",
"Vitals/ScreenTracker/BTTWebViewTracker.swift",
"Vitals/ScreenTracker/ViewControllerLifecycleTracker.swift",
"Vitals/ScreenTracker/ViewLifecycleTrackerModifier.swift",
"Vitals/TimerPerformanceMonitor.swift"
],
"target_dependencies" : [
"Backtrace",
"AppEventLogger"
],
"type" : "library"
},
{
"c99name" : "Backtrace",
"module_type" : "ClangTarget",
"name" : "Backtrace",
"path" : "Sources/Backtrace",
"product_memberships" : [
"BlueTriangle"
],
"sources" : [
"backtress_extracter.c"
],
"type" : "library"
},
{
"c99name" : "AppEventLogger",
"module_type" : "ClangTarget",
"name" : "AppEventLogger",
"path" : "Sources/AppEventLogger",
"product_memberships" : [
"BlueTriangle"
],
"sources" : [
"AppNotificationLogger.m",
"NotificationLog.m",
"SignalHandler.m"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.