Build Information
Failed to build SyncField, reference main (11efd7), with Swift 6.3 for Linux on 9 May 2026 18:50:24 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build 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.3
Building package at path: $PWD
https://github.com/OpenGraphLabs/syncfield-swift.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:5a7d791d2ead8a924b1292cb31bf3288eabcfe8880e0b005b00b45b71a5bc36a
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest
Building for debugging...
[0/6] Copying PrivacyInfo.xcprivacy
[2/6] Write sources
[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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 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 |
[14/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 |
[15/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 |
[16/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 |
[17/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
12 | self.handle = try FileHandle(forWritingTo: url)
13 | }
[18/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
12 | self.handle = try FileHandle(forWritingTo: url)
13 | }
[19/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
12 | self.handle = try FileHandle(forWritingTo: url)
13 | }
[20/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
12 | self.handle = try FileHandle(forWritingTo: url)
13 | }
[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 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
24 |
25 | public func publish(_ event: HealthEvent) async {
26 | lock.lock()
| `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 | let targets = Array(continuations.values)
28 | lock.unlock()
/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
26 | lock.lock()
27 | let targets = Array(continuations.values)
28 | lock.unlock()
| `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 | for cont in targets { cont.yield(event) }
30 | }
[26/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
24 |
25 | public func publish(_ event: HealthEvent) async {
26 | lock.lock()
| `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 | let targets = Array(continuations.values)
28 | lock.unlock()
/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
26 | lock.lock()
27 | let targets = Array(continuations.values)
28 | lock.unlock()
| `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 | for cont in targets { cont.yield(event) }
30 | }
[27/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
24 |
25 | public func publish(_ event: HealthEvent) async {
26 | lock.lock()
| `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 | let targets = Array(continuations.values)
28 | lock.unlock()
/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
26 | lock.lock()
27 | let targets = Array(continuations.values)
28 | lock.unlock()
| `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 | for cont in targets { cont.yield(event) }
30 | }
[28/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
24 |
25 | public func publish(_ event: HealthEvent) async {
26 | lock.lock()
| `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 | let targets = Array(continuations.values)
28 | lock.unlock()
/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
26 | lock.lock()
27 | let targets = Array(continuations.values)
28 | lock.unlock()
| `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 | for cont in targets { cont.yield(event) }
30 | }
[29/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
24 |
25 | public func publish(_ event: HealthEvent) async {
26 | lock.lock()
| `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
27 | let targets = Array(continuations.values)
28 | lock.unlock()
/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
26 | lock.lock()
27 | let targets = Array(continuations.values)
28 | lock.unlock()
| `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
29 | for cont in targets { cont.yield(event) }
30 | }
[30/41] Compiling SyncField iPhoneRawIMUStreams.swift
[31/41] Compiling SyncField SyncField.swift
[32/41] Compiling SyncField SyncFieldStream.swift
[33/41] Compiling SyncField SyncPoint.swift
[34/41] Compiling SyncField SessionState.swift
[35/41] Compiling SyncField StreamCapabilities.swift
[36/41] Compiling SyncField TactileBLEClient.swift
[37/41] Compiling SyncField TactilePacketParser.swift
[38/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
10 | self.handle = try FileHandle(forWritingTo: url)
11 | }
[39/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
10 | self.handle = try FileHandle(forWritingTo: url)
11 | }
[40/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
10 | self.handle = try FileHandle(forWritingTo: url)
11 | }
[41/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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
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 [#no-usage]
10 | self.handle = try FileHandle(forWritingTo: url)
11 | }
BUILD FAILURE 6.3 linux