The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SyncField, reference main (11efd7), with Swift 6.1 for Linux on 9 May 2026 18:49:03 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

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 /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
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:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/OpenGraphLabs/syncfield-swift.git
https://github.com/OpenGraphLabs/syncfield-swift.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.1-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:a7bfd71e9384436264431030299dc8a2d42d0664a168cfa1a5dd84c9bc592ccf
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest
Building for debugging...
[0/6] Write sources
[1/6] Copying PrivacyInfo.xcprivacy
[3/6] Write sources
[4/6] Copying PrivacyInfo.xcprivacy
[5/6] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/37] Emitting module SyncField
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[8/41] Compiling SyncField AVAudioEngineChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[9/41] Compiling SyncField ChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[10/41] Compiling SyncField ChirpSynthesis.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[11/41] Compiling SyncField ChirpTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[12/41] Compiling SyncField Errors.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[13/41] Compiling SyncField SessionLogWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[14/41] Compiling SyncField StreamWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[15/41] Compiling SyncField WriterFactory.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[16/41] Compiling SyncField resource_bundle_accessor.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[17/41] Compiling SyncField SessionState.swift
[18/41] Compiling SyncField StreamCapabilities.swift
[19/41] Compiling SyncField TactileBLEClient.swift
[20/41] Compiling SyncField TactilePacketParser.swift
[21/41] Compiling SyncField TactileStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[22/41] Compiling SyncField TactileTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[23/41] Compiling SyncField iPhoneCameraStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[24/41] Compiling SyncField iPhoneMotionStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[25/41] Compiling SyncField iPhoneRawIMUStreams.swift
[26/41] Compiling SyncField SyncField.swift
[27/41] Compiling SyncField SyncFieldStream.swift
[28/41] Compiling SyncField SyncPoint.swift
[29/41] Compiling SyncField HealthBus.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[30/41] Compiling SyncField HealthEvent.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[31/41] Compiling SyncField HandQualityConfig.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[32/41] Compiling SyncField HandQualityMonitor.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[33/41] Compiling SyncField HandQualitySummary.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[34/41] Compiling SyncField EventWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' 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 a '@Sendable' closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
39 |         }
40 |     }
/host/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 |                 )
/host/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,
[35/41] Compiling SyncField ManifestWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' 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 a '@Sendable' closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
39 |         }
40 |     }
/host/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 |                 )
/host/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,
[36/41] Compiling SyncField SensorWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' 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 a '@Sendable' closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
39 |         }
40 |     }
/host/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 |                 )
/host/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,
[37/41] Compiling SyncField SensorWriterPump.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:32:31: warning: capture of 'channels' with non-sendable type '[String : Any]' in a '@Sendable' 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 a '@Sendable' closure; this is an error in the Swift 6 language mode
33 |                     deviceTimestampNs: deviceTimestampNs
34 |                 )
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:38:13: warning: capture of 'self' with non-sendable type 'SensorWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
39 |         }
40 |     }
/host/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 |                 )
/host/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,
[38/41] Compiling SyncField HandQualityTypes.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[39/41] Compiling SyncField VisionHandConversion.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[40/41] Compiling SyncField SessionClock.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[41/41] Compiling SyncField SessionOrchestrator.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:a7bfd71e9384436264431030299dc8a2d42d0664a168cfa1a5dd84c9bc592ccf
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/32] Emitting module SyncField
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[3/36] Compiling SyncField TactileStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[4/36] Compiling SyncField TactileTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[5/36] Compiling SyncField iPhoneCameraStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[6/36] Compiling SyncField iPhoneMotionStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:111:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
109 |
110 |     public func connect(context: StreamConnectContext) async throws {
111 |         self.healthBus = context.healthBus
    |              `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
112 |         #if canImport(AVFoundation)
113 |         try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:15: error: cannot find 'healthBus' in scope
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |               `- error: cannot find 'healthBus' in scope
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:116:35: error: cannot infer contextual base in reference to member 'streamConnected'
114 |         captureSession.startRunning()
115 |         #endif
116 |         await healthBus?.publish(.streamConnected(streamId: streamId))
    |                                   `- error: cannot infer contextual base in reference to member 'streamConnected'
117 |     }
118 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:315:40: error: cannot find 'frameCount' in scope
313 |         StreamIngestReport(streamId: streamId,
314 |                            filePath: "\(streamId).mp4",
315 |                            frameCount: frameCount)
    |                                        `- error: cannot find 'frameCount' in scope
316 |     }
317 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:15: error: cannot find 'healthBus' in scope
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |               `- error: cannot find 'healthBus' in scope
324 |     }
325 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:323:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
321 |         selectedVideoDevice = nil
322 |         #endif
323 |         await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
    |                                   `- error: cannot infer contextual base in reference to member 'streamDisconnected'
324 |     }
325 |
[7/36] Compiling SyncField SessionState.swift
[8/36] Compiling SyncField StreamCapabilities.swift
[9/36] Compiling SyncField TactileBLEClient.swift
[10/36] Compiling SyncField TactilePacketParser.swift
[11/36] Compiling SyncField SessionLogWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[12/36] Compiling SyncField StreamWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[13/36] Compiling SyncField WriterFactory.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[14/36] Compiling SyncField resource_bundle_accessor.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SessionLogWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |         self.isoFormatter = ISO8601DateFormatter()
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriter.swift:11:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 9 |
10 |     public init(url: URL) throws {
11 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
12 |         self.handle = try FileHandle(forWritingTo: url)
13 |     }
[15/36] Compiling SyncField iPhoneRawIMUStreams.swift
[16/36] Compiling SyncField SyncField.swift
[17/36] Compiling SyncField SyncFieldStream.swift
[18/36] Compiling SyncField SyncPoint.swift
[19/36] Compiling SyncField HandQualityTypes.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[20/36] Compiling SyncField VisionHandConversion.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[21/36] Compiling SyncField SessionClock.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[22/36] Compiling SyncField SessionOrchestrator.swift
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:10:27: error: cannot find type 'mach_timebase_info_data_t' in scope
 8 | /// plus a wall-clock anchor captured once at session start.
 9 | public final class SessionClock: @unchecked Sendable {
10 |     private let timebase: mach_timebase_info_data_t
   |                           `- error: cannot find type 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:13:18: error: cannot find 'mach_timebase_info_data_t' in scope
11 |
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
   |                  `- error: cannot find 'mach_timebase_info_data_t' in scope
14 |         mach_timebase_info(&tb)
15 |         self.timebase = tb
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:14:9: error: cannot find 'mach_timebase_info' in scope
12 |     public init() {
13 |         var tb = mach_timebase_info_data_t()
14 |         mach_timebase_info(&tb)
   |         `- error: cannot find 'mach_timebase_info' in scope
15 |         self.timebase = tb
16 |     }
/host/spi-builder-workspace/Sources/SyncField/SessionClock.swift:20:32: error: cannot find 'mach_absolute_time' in scope
18 |     /// Current monotonic clock in nanoseconds. Never goes backwards.
19 |     public func nowMonotonicNs() -> UInt64 {
20 |         machTicksToMonotonicNs(mach_absolute_time())
   |                                `- error: cannot find 'mach_absolute_time' in scope
21 |     }
22 |
[23/36] Compiling SyncField EventWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
[24/36] Compiling SyncField ManifestWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
[25/36] Compiling SyncField SensorWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
[26/36] Compiling SyncField SensorWriterPump.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/EventWriter.swift:118:33: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
116 |         guard !pendingLines.isEmpty else { return }
117 |         if fileHandle == nil {
118 |             FileManager.default.createFile(atPath: fileURL.path, contents: nil)
    |                                 `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
119 |             fileHandle = try? FileHandle(forWritingTo: fileURL)
120 |         }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriter.swift:9:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
 7 |
 8 |     public init(url: URL) throws {
 9 |         FileManager.default.createFile(atPath: url.path, contents: nil)
   |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused
10 |         self.handle = try FileHandle(forWritingTo: url)
11 |     }
[27/36] Compiling SyncField HealthBus.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[28/36] Compiling SyncField HealthEvent.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[29/36] Compiling SyncField HandQualityConfig.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[30/36] Compiling SyncField HandQualityMonitor.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[31/36] Compiling SyncField HandQualitySummary.swift
/host/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; 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; this is an error in the Swift 6 language mode
27 |         let targets = Array(continuations.values)
28 |         lock.unlock()
/host/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; 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; this is an error in the Swift 6 language mode
29 |         for cont in targets { cont.yield(event) }
30 |     }
[32/36] Compiling SyncField AVAudioEngineChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[33/36] Compiling SyncField ChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[34/36] Compiling SyncField ChirpSynthesis.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[35/36] Compiling SyncField ChirpTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
[36/36] Compiling SyncField Errors.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:23:14: error: cannot find 'mach_timebase_info_data_t' in scope
21 | @inline(__always)
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
   |              `- error: cannot find 'mach_timebase_info_data_t' in scope
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:24:5: error: cannot find 'mach_timebase_info' in scope
22 | func currentMonotonicNs() -> UInt64 {
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
   |     `- error: cannot find 'mach_timebase_info' in scope
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
26 | }
/host/spi-builder-workspace/Sources/SyncField/Audio/ChirpPlayer.swift:25:12: error: cannot find 'mach_absolute_time' in scope
23 |     var tb = mach_timebase_info_data_t()
24 |     mach_timebase_info(&tb)
25 |     return mach_absolute_time() &* UInt64(tb.numer) / UInt64(tb.denom)
   |            `- error: cannot find 'mach_absolute_time' in scope
26 | }
27 |
BUILD FAILURE 6.1 linux