The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SyncField, reference main (11efd7), with Swift 6.1 for macOS (SPM) on 9 May 2026 18:49:17 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/OpenGraphLabs/syncfield-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/OpenGraphLabs/syncfield-swift
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 11efd79 fix(insta360): unblock SDK-linked build, harden Wi-Fi lifecycle, support multi-camera (#7)
Cloned https://github.com/OpenGraphLabs/syncfield-swift.git
Revision (git rev-parse @):
11efd79a0c116550fdffc151448279d24f561524
SUCCESS checkout https://github.com/OpenGraphLabs/syncfield-swift.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/OpenGraphLabs/syncfield-swift.git
https://github.com/OpenGraphLabs/syncfield-swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SyncField",
  "name" : "SyncField",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "SyncField",
      "targets" : [
        "SyncField"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SyncFieldUIKit",
      "targets" : [
        "SyncFieldUIKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SyncFieldInsta360",
      "targets" : [
        "SyncFieldInsta360"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SyncFieldUIKit",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldUIKit",
      "path" : "Sources/SyncFieldUIKit",
      "product_memberships" : [
        "SyncFieldUIKit"
      ],
      "sources" : [
        "SyncFieldPreview.swift",
        "SyncFieldPreviewView.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SyncFieldTests",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldTests",
      "path" : "Tests/SyncFieldTests",
      "sources" : [
        "CameraMidpointTimestampTests.swift",
        "ChirpSynthesisTests.swift",
        "ChirpTypesTests.swift",
        "HealthBusTests.swift",
        "ManifestWriterTests.swift",
        "MockStream.swift",
        "Quality/EventWriterTests.swift",
        "Quality/HandQualityMonitorTests.swift",
        "Quality/HandQualitySummaryTests.swift",
        "Quality/HandQualityTypesTests.swift",
        "Quality/SessionOrchestratorQualityTests.swift",
        "SensorWriterPumpTests.swift",
        "SensorWriterTests.swift",
        "SessionClockTests.swift",
        "SessionLogWriterTests.swift",
        "SessionOrchestratorAtomicStartTests.swift",
        "SessionOrchestratorChirpTests.swift",
        "SessionOrchestratorIngestTests.swift",
        "SessionOrchestratorStateMachineTests.swift",
        "SessionStateTests.swift",
        "StreamCapabilitiesTests.swift",
        "StreamWriterTests.swift",
        "SyncPointTests.swift",
        "TactilePacketParserTests.swift",
        "TactileSampleEventTests.swift",
        "TactileTypesTests.swift",
        "iPhoneCameraStreamTests.swift",
        "iPhoneMotionStreamTests.swift",
        "iPhoneRawAccelStreamTests.swift",
        "iPhoneRawGyroStreamTests.swift",
        "iPhoneRawMagStreamTests.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SyncFieldInsta360",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldInsta360",
      "path" : "Sources/SyncFieldInsta360",
      "product_memberships" : [
        "SyncFieldInsta360"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SyncFieldInsta360/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Insta360BLEController.swift",
        "Insta360CameraStream.swift",
        "Insta360Error.swift",
        "Insta360WiFiDownloader.swift",
        "SyncFieldInsta360.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SyncField",
      "module_type" : "SwiftTarget",
      "name" : "SyncField",
      "path" : "Sources/SyncField",
      "product_memberships" : [
        "SyncField",
        "SyncFieldUIKit",
        "SyncFieldInsta360"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SyncField/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Audio/AVAudioEngineChirpPlayer.swift",
        "Audio/ChirpPlayer.swift",
        "Audio/ChirpSynthesis.swift",
        "Audio/ChirpTypes.swift",
        "Errors.swift",
        "HealthBus.swift",
        "HealthEvent.swift",
        "Quality/HandQualityConfig.swift",
        "Quality/HandQualityMonitor.swift",
        "Quality/HandQualitySummary.swift",
        "Quality/HandQualityTypes.swift",
        "Quality/VisionHandConversion.swift",
        "SessionClock.swift",
        "SessionOrchestrator.swift",
        "SessionState.swift",
        "StreamCapabilities.swift",
        "Streams/Tactile/TactileBLEClient.swift",
        "Streams/Tactile/TactilePacketParser.swift",
        "Streams/Tactile/TactileStream.swift",
        "Streams/Tactile/TactileTypes.swift",
        "Streams/iPhoneCameraStream.swift",
        "Streams/iPhoneMotionStream.swift",
        "Streams/iPhoneRawIMUStreams.swift",
        "SyncField.swift",
        "SyncFieldStream.swift",
        "SyncPoint.swift",
        "Writers/EventWriter.swift",
        "Writers/ManifestWriter.swift",
        "Writers/SensorWriter.swift",
        "Writers/SensorWriterPump.swift",
        "Writers/SessionLogWriter.swift",
        "Writers/StreamWriter.swift",
        "Writers/WriterFactory.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/6] Write sources
[2/6] Copying PrivacyInfo.xcprivacy
[2/6] Write sources
[4/6] Copying PrivacyInfo.xcprivacy
[5/6] Write swift-version-2F0A5646E1D333AE.txt
[7/38] Emitting module SyncField
[8/41] Compiling SyncField StreamWriter.swift
[9/41] Compiling SyncField WriterFactory.swift
[10/41] Compiling SyncField resource_bundle_accessor.swift
[11/41] Compiling SyncField iPhoneRawIMUStreams.swift
[12/41] Compiling SyncField SyncField.swift
[13/41] Compiling SyncField SyncFieldStream.swift
[14/41] Compiling SyncField SensorWriter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
 8 | /// serial queue preserves JSONL write order and `flush()` gives stopRecording
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
   |             `- note: class 'SensorWriterPump' does not conform to the 'Sendable' protocol
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   :
36 |             }
37 |             semaphore.wait()
38 |             self.group.leave()
   |             `- warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
39 |         }
40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:29:35: warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
27 |             let semaphore = DispatchSemaphore(value: 0)
28 |             Task { [writer] in
29 |                 try? await writer.append(
   |                                   |- warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
   |                                   `- note: sending task-isolated 'channels' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
[15/41] Compiling SyncField SensorWriterPump.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
 8 | /// serial queue preserves JSONL write order and `flush()` gives stopRecording
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
   |             `- note: class 'SensorWriterPump' does not conform to the 'Sendable' protocol
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   :
36 |             }
37 |             semaphore.wait()
38 |             self.group.leave()
   |             `- warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
39 |         }
40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:29:35: warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
27 |             let semaphore = DispatchSemaphore(value: 0)
28 |             Task { [writer] in
29 |                 try? await writer.append(
   |                                   |- warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
   |                                   `- note: sending task-isolated 'channels' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
[16/41] Compiling SyncField SessionLogWriter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' closure
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
 8 | /// serial queue preserves JSONL write order and `flush()` gives stopRecording
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
   |             `- note: class 'SensorWriterPump' does not conform to the 'Sendable' protocol
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   :
36 |             }
37 |             semaphore.wait()
38 |             self.group.leave()
   |             `- warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure
39 |         }
40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
32 |                     channels: channels,
   |                               `- warning: capture of 'channels' with non-sendable type '[String : Any]' in an isolated closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:29:35: warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
27 |             let semaphore = DispatchSemaphore(value: 0)
28 |             Task { [writer] in
29 |                 try? await writer.append(
   |                                   |- warning: sending 'channels' risks causing data races; this is an error in the Swift 6 language mode
   |                                   `- note: sending task-isolated 'channels' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
30 |                     frame: frame,
31 |                     monotonicNs: monotonicNs,
[17/41] Compiling SyncField SyncPoint.swift
[18/41] Compiling SyncField EventWriter.swift
[19/41] Compiling SyncField ManifestWriter.swift
[20/41] Compiling SyncField TactileBLEClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:142:39: warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
140 |                 let channelsAny: [String: Any] = channelsOut.mapValues { $0 as Any }
141 |                 Task {
142 |                     try? await writer.append(frame: frame, monotonicNs: captureNs,
    |                                       |- warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated 'channelsAny' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
143 |                                              channels: channelsAny,
144 |                                              deviceTimestampNs: deviceTsNs)
[21/41] Compiling SyncField TactilePacketParser.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:142:39: warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
140 |                 let channelsAny: [String: Any] = channelsOut.mapValues { $0 as Any }
141 |                 Task {
142 |                     try? await writer.append(frame: frame, monotonicNs: captureNs,
    |                                       |- warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated 'channelsAny' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
143 |                                              channels: channelsAny,
144 |                                              deviceTimestampNs: deviceTsNs)
[22/41] Compiling SyncField TactileStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:142:39: warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
140 |                 let channelsAny: [String: Any] = channelsOut.mapValues { $0 as Any }
141 |                 Task {
142 |                     try? await writer.append(frame: frame, monotonicNs: captureNs,
    |                                       |- warning: sending 'channelsAny' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated 'channelsAny' to actor-isolated instance method 'append(frame:monotonicNs:channels:deviceTimestampNs:)' risks causing data races between actor-isolated and task-isolated uses
143 |                                              channels: channelsAny,
144 |                                              deviceTimestampNs: deviceTsNs)
[23/41] Compiling SyncField AVAudioEngineChirpPlayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:88:61: warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 86 |                 // Completion on render thread; we captured times upfront.
 87 |                 // Stop engine asynchronously so we don't block the audio thread.
 88 |                 DispatchQueue.global(qos: .utility).async { engine.stop() }
    |                                                             `- warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 89 |             }
 90 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEngine.h:161:12: note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
159 | */
160 | API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
161 | @interface AVAudioEngine : NSObject {
    |            `- note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
162 | @private
163 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  2 | import Foundation
  3 | #if canImport(AVFoundation)
  4 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  5 | #endif
  6 |
[24/41] Compiling SyncField ChirpPlayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:88:61: warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 86 |                 // Completion on render thread; we captured times upfront.
 87 |                 // Stop engine asynchronously so we don't block the audio thread.
 88 |                 DispatchQueue.global(qos: .utility).async { engine.stop() }
    |                                                             `- warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 89 |             }
 90 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEngine.h:161:12: note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
159 | */
160 | API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
161 | @interface AVAudioEngine : NSObject {
    |            `- note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
162 | @private
163 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  2 | import Foundation
  3 | #if canImport(AVFoundation)
  4 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  5 | #endif
  6 |
[25/41] Compiling SyncField ChirpSynthesis.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:88:61: warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 86 |                 // Completion on render thread; we captured times upfront.
 87 |                 // Stop engine asynchronously so we don't block the audio thread.
 88 |                 DispatchQueue.global(qos: .utility).async { engine.stop() }
    |                                                             `- warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 89 |             }
 90 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEngine.h:161:12: note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
159 | */
160 | API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
161 | @interface AVAudioEngine : NSObject {
    |            `- note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
162 | @private
163 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  2 | import Foundation
  3 | #if canImport(AVFoundation)
  4 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  5 | #endif
  6 |
[26/41] Compiling SyncField ChirpTypes.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:88:61: warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 86 |                 // Completion on render thread; we captured times upfront.
 87 |                 // Stop engine asynchronously so we don't block the audio thread.
 88 |                 DispatchQueue.global(qos: .utility).async { engine.stop() }
    |                                                             `- warning: capture of 'engine' with non-sendable type 'AVAudioEngine' in a '@Sendable' closure
 89 |             }
 90 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEngine.h:161:12: note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
159 | */
160 | API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
161 | @interface AVAudioEngine : NSObject {
    |            `- note: class 'AVAudioEngine' does not conform to the 'Sendable' protocol
162 | @private
163 | 	void *_impl;
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/Audio/AVAudioEngineChirpPlayer.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  2 | import Foundation
  3 | #if canImport(AVFoundation)
  4 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFAudio'
  5 | #endif
  6 |
[27/41] Compiling SyncField Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:26:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
24 |
25 |     public func publish(_ event: HealthEvent) async {
26 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:28:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
26 |         lock.lock()
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[28/41] Compiling SyncField HealthBus.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:26:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
24 |
25 |     public func publish(_ event: HealthEvent) async {
26 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:28:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
26 |         lock.lock()
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[29/41] Compiling SyncField HealthEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:26:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
24 |
25 |     public func publish(_ event: HealthEvent) async {
26 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:28:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
26 |         lock.lock()
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[30/41] Compiling SyncField HandQualityConfig.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:26:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
24 |
25 |     public func publish(_ event: HealthEvent) async {
26 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/HealthBus.swift:28:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
26 |         lock.lock()
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[31/41] Compiling SyncField SessionClock.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:422:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
420 |         guard let writer = eventWriter else { return }
421 |         if let endNs = endMonotonicNs, endNs != monotonicNs {
422 |             let h = try await writer.appendIntervalStart(
    |                                      |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendIntervalStart(kind:startMonotonicNs:startFrame:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
423 |                 kind: kind,
424 |                 startMonotonicNs: monotonicNs,
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:430:30: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
428 |             try await writer.closeInterval(handle: h, endMonotonicNs: endNs, endFrame: -1)
429 |         } else {
430 |             try await writer.appendPoint(kind: kind, monotonicNs: monotonicNs, payload: payload)
    |                              |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendPoint(kind:monotonicNs:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
431 |         }
432 |         await writer.flush()
[32/41] Compiling SyncField SessionOrchestrator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:422:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
420 |         guard let writer = eventWriter else { return }
421 |         if let endNs = endMonotonicNs, endNs != monotonicNs {
422 |             let h = try await writer.appendIntervalStart(
    |                                      |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendIntervalStart(kind:startMonotonicNs:startFrame:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
423 |                 kind: kind,
424 |                 startMonotonicNs: monotonicNs,
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:430:30: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
428 |             try await writer.closeInterval(handle: h, endMonotonicNs: endNs, endFrame: -1)
429 |         } else {
430 |             try await writer.appendPoint(kind: kind, monotonicNs: monotonicNs, payload: payload)
    |                              |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendPoint(kind:monotonicNs:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
431 |         }
432 |         await writer.flush()
[33/41] Compiling SyncField SessionState.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:422:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
420 |         guard let writer = eventWriter else { return }
421 |         if let endNs = endMonotonicNs, endNs != monotonicNs {
422 |             let h = try await writer.appendIntervalStart(
    |                                      |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendIntervalStart(kind:startMonotonicNs:startFrame:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
423 |                 kind: kind,
424 |                 startMonotonicNs: monotonicNs,
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:430:30: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
428 |             try await writer.closeInterval(handle: h, endMonotonicNs: endNs, endFrame: -1)
429 |         } else {
430 |             try await writer.appendPoint(kind: kind, monotonicNs: monotonicNs, payload: payload)
    |                              |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendPoint(kind:monotonicNs:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
431 |         }
432 |         await writer.flush()
[34/41] Compiling SyncField StreamCapabilities.swift
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:422:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
420 |         guard let writer = eventWriter else { return }
421 |         if let endNs = endMonotonicNs, endNs != monotonicNs {
422 |             let h = try await writer.appendIntervalStart(
    |                                      |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendIntervalStart(kind:startMonotonicNs:startFrame:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
423 |                 kind: kind,
424 |                 startMonotonicNs: monotonicNs,
/Users/admin/builder/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:430:30: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
428 |             try await writer.closeInterval(handle: h, endMonotonicNs: endNs, endFrame: -1)
429 |         } else {
430 |             try await writer.appendPoint(kind: kind, monotonicNs: monotonicNs, payload: payload)
    |                              |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending 'self'-isolated 'payload' to actor-isolated instance method 'appendPoint(kind:monotonicNs:payload:)' risks causing data races between actor-isolated and 'self'-isolated uses
431 |         }
432 |         await writer.flush()
[35/41] Compiling SyncField TactileTypes.swift
[36/41] Compiling SyncField iPhoneCameraStream.swift
[37/41] Compiling SyncField iPhoneMotionStream.swift
[38/41] Compiling SyncField HandQualityMonitor.swift
[39/41] Compiling SyncField HandQualitySummary.swift
[40/41] Compiling SyncField HandQualityTypes.swift
[41/41] Compiling SyncField VisionHandConversion.swift
[42/51] Compiling SyncFieldUIKit SyncFieldPreviewView.swift
[43/51] Compiling SyncFieldUIKit SyncFieldPreview.swift
[44/51] Emitting module SyncFieldUIKit
[45/51] Compiling SyncFieldInsta360 resource_bundle_accessor.swift
[46/51] Compiling SyncFieldInsta360 SyncFieldInsta360.swift
[47/51] Compiling SyncFieldInsta360 Insta360Error.swift
[48/51] Compiling SyncFieldInsta360 Insta360BLEController.swift
[49/51] Compiling SyncFieldInsta360 Insta360CameraStream.swift
[50/51] Emitting module SyncFieldInsta360
[51/51] Compiling SyncFieldInsta360 Insta360WiFiDownloader.swift
Build complete! (11.88s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SyncField",
  "name" : "SyncField",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "SyncField",
      "targets" : [
        "SyncField"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SyncFieldUIKit",
      "targets" : [
        "SyncFieldUIKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SyncFieldInsta360",
      "targets" : [
        "SyncFieldInsta360"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SyncFieldUIKit",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldUIKit",
      "path" : "Sources/SyncFieldUIKit",
      "product_memberships" : [
        "SyncFieldUIKit"
      ],
      "sources" : [
        "SyncFieldPreview.swift",
        "SyncFieldPreviewView.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SyncFieldTests",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldTests",
      "path" : "Tests/SyncFieldTests",
      "sources" : [
        "CameraMidpointTimestampTests.swift",
        "ChirpSynthesisTests.swift",
        "ChirpTypesTests.swift",
        "HealthBusTests.swift",
        "ManifestWriterTests.swift",
        "MockStream.swift",
        "Quality/EventWriterTests.swift",
        "Quality/HandQualityMonitorTests.swift",
        "Quality/HandQualitySummaryTests.swift",
        "Quality/HandQualityTypesTests.swift",
        "Quality/SessionOrchestratorQualityTests.swift",
        "SensorWriterPumpTests.swift",
        "SensorWriterTests.swift",
        "SessionClockTests.swift",
        "SessionLogWriterTests.swift",
        "SessionOrchestratorAtomicStartTests.swift",
        "SessionOrchestratorChirpTests.swift",
        "SessionOrchestratorIngestTests.swift",
        "SessionOrchestratorStateMachineTests.swift",
        "SessionStateTests.swift",
        "StreamCapabilitiesTests.swift",
        "StreamWriterTests.swift",
        "SyncPointTests.swift",
        "TactilePacketParserTests.swift",
        "TactileSampleEventTests.swift",
        "TactileTypesTests.swift",
        "iPhoneCameraStreamTests.swift",
        "iPhoneMotionStreamTests.swift",
        "iPhoneRawAccelStreamTests.swift",
        "iPhoneRawGyroStreamTests.swift",
        "iPhoneRawMagStreamTests.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SyncFieldInsta360",
      "module_type" : "SwiftTarget",
      "name" : "SyncFieldInsta360",
      "path" : "Sources/SyncFieldInsta360",
      "product_memberships" : [
        "SyncFieldInsta360"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SyncFieldInsta360/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Insta360BLEController.swift",
        "Insta360CameraStream.swift",
        "Insta360Error.swift",
        "Insta360WiFiDownloader.swift",
        "SyncFieldInsta360.swift"
      ],
      "target_dependencies" : [
        "SyncField"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SyncField",
      "module_type" : "SwiftTarget",
      "name" : "SyncField",
      "path" : "Sources/SyncField",
      "product_memberships" : [
        "SyncField",
        "SyncFieldUIKit",
        "SyncFieldInsta360"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SyncField/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Audio/AVAudioEngineChirpPlayer.swift",
        "Audio/ChirpPlayer.swift",
        "Audio/ChirpSynthesis.swift",
        "Audio/ChirpTypes.swift",
        "Errors.swift",
        "HealthBus.swift",
        "HealthEvent.swift",
        "Quality/HandQualityConfig.swift",
        "Quality/HandQualityMonitor.swift",
        "Quality/HandQualitySummary.swift",
        "Quality/HandQualityTypes.swift",
        "Quality/VisionHandConversion.swift",
        "SessionClock.swift",
        "SessionOrchestrator.swift",
        "SessionState.swift",
        "StreamCapabilities.swift",
        "Streams/Tactile/TactileBLEClient.swift",
        "Streams/Tactile/TactilePacketParser.swift",
        "Streams/Tactile/TactileStream.swift",
        "Streams/Tactile/TactileTypes.swift",
        "Streams/iPhoneCameraStream.swift",
        "Streams/iPhoneMotionStream.swift",
        "Streams/iPhoneRawIMUStreams.swift",
        "SyncField.swift",
        "SyncFieldStream.swift",
        "SyncPoint.swift",
        "Writers/EventWriter.swift",
        "Writers/ManifestWriter.swift",
        "Writers/SensorWriter.swift",
        "Writers/SensorWriterPump.swift",
        "Writers/SessionLogWriter.swift",
        "Writers/StreamWriter.swift",
        "Writers/WriterFactory.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.