Build Information
Failed to build SyncField, reference main (40deed), with Swift 6.1 for Android on 10 Aug 2026 20:30:34 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344843-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1Build Log
========================================
RunAll
========================================
Builder version: 729ceb5fcd9493dc13ee340bc4f0908bd201f85d
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 40deed1 feat: add atomic long-horizon segment rotation
Cloned https://github.com/OpenGraphLabs/syncfield-swift.git
Revision (git rev-parse @):
40deed1806f5e2b4cf4a4013c0ec6eed679197f3
SUCCESS checkout https://github.com/OpenGraphLabs/syncfield-swift.git at main
========================================
Build
========================================
Selected platform: android
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-54344843-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:0cd0efb458d677a6de9b5e028d30e2aa1d1b247c2277202ba317a28ce9e867e0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/AGENTS.md
Building for debugging...
[0/6] Write sources
[0/6] Copying PrivacyInfo.xcprivacy
[0/6] Write sources
[0/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/55] 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/61] Compiling SyncField SensorWriterPump.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[9/61] Compiling SyncField SessionLogWriter.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[10/61] Compiling SyncField StreamWriter.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[11/61] Compiling SyncField StreamWriterPump.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[12/61] Compiling SyncField WriterFactory.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[13/61] Compiling SyncField resource_bundle_accessor.swift
/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/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 | }
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:31:13: warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
4 | /// `flush()` is the segment boundary: every callback accepted before the
5 | /// writer swap is durable before the old StreamWriter is closed.
6 | final class StreamWriterPump {
| `- note: class 'StreamWriterPump' does not conform to the 'Sendable' protocol
7 | private let queue: DispatchQueue
8 | private let group = DispatchGroup()
:
29 | }
30 | semaphore.wait()
31 | self.group.leave()
| `- warning: capture of 'self' with non-sendable type 'StreamWriterPump' in a '@Sendable' closure; this is an error in the Swift 6 language mode
32 | }
33 | }
/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,
[14/61] Compiling SyncField TactileStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[15/61] Compiling SyncField TactileTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[16/61] Compiling SyncField WristImuStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[17/61] Compiling SyncField iPhoneCameraStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[18/61] Compiling SyncField iPhoneMotionStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[19/61] Compiling SyncField iPhoneRawIMUStreams.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[20/61] Compiling SyncField SyncField.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[21/61] 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 |
[22/61] Compiling SyncField AudioReattachableStream.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 |
[23/61] Compiling SyncField AudioSessionInterruptionHandler.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 |
[24/61] Compiling SyncField AudioSessionPolicy.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 |
[25/61] 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 |
[26/61] 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 |
[27/61] 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 |
[28/61] Compiling SyncField SyncFieldStream.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 | }
[29/61] Compiling SyncField SyncPoint.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 | }
[30/61] 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 | }
[31/61] 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 | }
[32/61] Compiling SyncField RotatingSensorWriter.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 | }
[33/61] 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 | }
[34/61] Compiling SyncField StereoProbedCalibration.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 | }
[35/61] Compiling SyncField Errors.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 | }
[36/61] 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 | }
[37/61] 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 | }
[38/61] 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 | }
[39/61] 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 | }
[40/61] 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 | }
[41/61] Compiling SyncField CountdownSpec.swift
[42/61] Compiling SyncField CountdownTickPlayer.swift
[43/61] Compiling SyncField CalibrationScaling.swift
[44/61] Compiling SyncField CameraCalibrationProber.swift
[45/61] Compiling SyncField PhotoCalibrationProbeExecutor.swift
[46/61] Compiling SyncField ProbedCameraCalibration.swift
[47/61] Compiling SyncField StereoExtrinsicsMath.swift
[48/61] Compiling SyncField CameraTimestamps.swift
[49/61] Compiling SyncField FrameProcessorGate.swift
[50/61] Compiling SyncField MultiCamCameraStream.swift
[51/61] Compiling SyncField TactileAcquireFailure.swift
[52/61] Compiling SyncField TactileBLEClient.swift
[53/61] Compiling SyncField TactilePacketParser.swift
[54/61] Compiling SyncField TactileRoleRegistry.swift
[55/61] 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 |
[56/61] 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 |
[57/61] 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 |
[58/61] 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 |
[59/61] Compiling SyncField SessionState.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 |
[60/61] Compiling SyncField StreamCapabilities.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 |
[61/61] Compiling SyncField CameraDeviceConfig.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-54344843-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:0cd0efb458d677a6de9b5e028d30e2aa1d1b247c2277202ba317a28ce9e867e0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/AGENTS.md
[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/50] 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/56] Compiling SyncField CountdownSpec.swift
[4/56] Compiling SyncField CountdownTickPlayer.swift
[5/56] Compiling SyncField CalibrationScaling.swift
[6/56] Compiling SyncField CameraCalibrationProber.swift
[7/56] Compiling SyncField PhotoCalibrationProbeExecutor.swift
[8/56] Compiling SyncField ProbedCameraCalibration.swift
[9/56] Compiling SyncField StereoExtrinsicsMath.swift
[10/56] Compiling SyncField SyncFieldStream.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 | }
[11/56] Compiling SyncField SyncPoint.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 | }
[12/56] 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 | }
[13/56] 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 | }
[14/56] Compiling SyncField RotatingSensorWriter.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 | }
[15/56] 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 | }
[16/56] Compiling SyncField SensorWriterPump.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/56] 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 | }
[18/56] 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 | }
[19/56] Compiling SyncField StreamWriterPump.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 | }
[20/56] 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 | }
[21/56] 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 | }
[22/56] Compiling SyncField CameraTimestamps.swift
[23/56] Compiling SyncField FrameProcessorGate.swift
[24/56] Compiling SyncField MultiCamCameraStream.swift
[25/56] Compiling SyncField TactileAcquireFailure.swift
[26/56] Compiling SyncField TactileBLEClient.swift
[27/56] Compiling SyncField TactilePacketParser.swift
[28/56] Compiling SyncField TactileRoleRegistry.swift
[29/56] 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 |
[30/56] Compiling SyncField AudioReattachableStream.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 |
[31/56] Compiling SyncField AudioSessionInterruptionHandler.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 |
[32/56] Compiling SyncField AudioSessionPolicy.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/56] 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/56] 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/56] 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/56] Compiling SyncField StereoProbedCalibration.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 | }
[37/56] Compiling SyncField Errors.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 | }
[38/56] 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 | }
[39/56] 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 | }
[40/56] 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 | }
[41/56] 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 | }
[42/56] 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 | }
[43/56] 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 |
[44/56] 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 |
[45/56] 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 |
[46/56] 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 |
[47/56] Compiling SyncField SessionState.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 |
[48/56] Compiling SyncField StreamCapabilities.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 |
[49/56] Compiling SyncField CameraDeviceConfig.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 |
[50/56] Compiling SyncField TactileStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[51/56] Compiling SyncField TactileTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[52/56] Compiling SyncField WristImuStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[53/56] Compiling SyncField iPhoneCameraStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[54/56] Compiling SyncField iPhoneMotionStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[55/56] Compiling SyncField iPhoneRawIMUStreams.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
[56/56] Compiling SyncField SyncField.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:123:39: error: value of type 'TactilePeripheralRef' has no member 'identifier'
121 | let m = try await client.connectAndPrepare(ref, expectedSide: side)
122 | let claimed = await TactileRoleRegistry.shared
123 | .tryClaim(ref.identifier.uuidString, side: side)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:125:45: error: value of type 'TactilePeripheralRef' has no member 'identifier'
123 | .tryClaim(ref.identifier.uuidString, side: side)
124 | guard claimed else {
125 | excluded.insert(ref.identifier)
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
126 | client.disconnect()
127 | continue
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:151:42: error: type 'TactileBLEClient' has no member 'Error'
149 | await healthBus?.publish(.streamConnected(streamId: streamId))
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
| `- error: type 'TactileBLEClient' has no member 'Error'
152 | excluded.insert(ref.identifier) // definitively the other side
153 | client.disconnect()
/host/spi-builder-workspace/Sources/SyncField/Streams/Tactile/TactileStream.swift:152:41: error: value of type 'TactilePeripheralRef' has no member 'identifier'
150 | return // success; auto-reconnect handles future drops
151 | } catch TactileBLEClient.Error.wrongSide {
152 | excluded.insert(ref.identifier) // definitively the other side
| `- error: value of type 'TactilePeripheralRef' has no member 'identifier'
153 | client.disconnect()
154 | } catch {
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:250:14: error: value of type 'iPhoneCameraStream' has no member 'healthBus'
248 |
249 | public func connect(context: StreamConnectContext) async throws {
250 | self.healthBus = context.healthBus
| `- error: value of type 'iPhoneCameraStream' has no member 'healthBus'
251 | #if canImport(AVFoundation)
252 | try configureSession()
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:15: error: cannot find 'healthBus' in scope
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot find 'healthBus' in scope
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:255:35: error: cannot infer contextual base in reference to member 'streamConnected'
253 | captureSession.startRunning()
254 | #endif
255 | await healthBus?.publish(.streamConnected(streamId: streamId))
| `- error: cannot infer contextual base in reference to member 'streamConnected'
256 | }
257 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:756:40: error: cannot find 'frameCount' in scope
754 | StreamIngestReport(streamId: streamId,
755 | filePath: "\(streamId).mp4",
756 | frameCount: frameCount)
| `- error: cannot find 'frameCount' in scope
757 | }
758 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:15: error: cannot find 'healthBus' in scope
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot find 'healthBus' in scope
773 | }
774 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneCameraStream.swift:772:35: error: cannot infer contextual base in reference to member 'streamDisconnected'
770 | selectedVideoDevice = nil
771 | #endif
772 | await healthBus?.publish(.streamDisconnected(streamId: streamId, reason: "normal"))
| `- error: cannot infer contextual base in reference to member 'streamDisconnected'
773 | }
774 |
BUILD FAILURE 6.1 android