The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SyncField, reference main (40deed), with Swift 6.1 for Wasm on 10 Aug 2026 20:34:03 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:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1

Build Log

 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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[4/56] Compiling SyncField SessionLogWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:22: error: cannot find 'DispatchQueue' in scope
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                      `- error: cannot find 'DispatchQueue' in scope
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:56: error: cannot infer contextual base in reference to member 'userInitiated'
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:27:29: error: cannot find 'DispatchSemaphore' in scope
25 |         group.enter()
26 |         queue.async {
27 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
28 |             Task { [writer] in
29 |                 try? await writer.append(
/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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[5/56] Compiling SyncField StreamWriter.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:22: error: cannot find 'DispatchQueue' in scope
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                      `- error: cannot find 'DispatchQueue' in scope
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:56: error: cannot infer contextual base in reference to member 'userInitiated'
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:27:29: error: cannot find 'DispatchSemaphore' in scope
25 |         group.enter()
26 |         queue.async {
27 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
28 |             Task { [writer] in
29 |                 try? await writer.append(
/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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[6/56] Compiling SyncField StreamWriterPump.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:22: error: cannot find 'DispatchQueue' in scope
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                      `- error: cannot find 'DispatchQueue' in scope
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:56: error: cannot infer contextual base in reference to member 'userInitiated'
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:27:29: error: cannot find 'DispatchSemaphore' in scope
25 |         group.enter()
26 |         queue.async {
27 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
28 |             Task { [writer] in
29 |                 try? await writer.append(
/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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[7/56] Compiling SyncField WriterFactory.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:22: error: cannot find 'DispatchQueue' in scope
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                      `- error: cannot find 'DispatchQueue' in scope
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:56: error: cannot infer contextual base in reference to member 'userInitiated'
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:27:29: error: cannot find 'DispatchSemaphore' in scope
25 |         group.enter()
26 |         queue.async {
27 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
28 |             Task { [writer] in
29 |                 try? await writer.append(
/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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[8/56] Compiling SyncField resource_bundle_accessor.swift
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:22: error: cannot find 'DispatchQueue' in scope
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                      `- error: cannot find 'DispatchQueue' in scope
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:15:56: error: cannot infer contextual base in reference to member 'userInitiated'
13 |
14 |     init(label: String) {
15 |         self.queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
16 |     }
17 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:27:29: error: cannot find 'DispatchSemaphore' in scope
25 |         group.enter()
26 |         queue.async {
27 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
28 |             Task { [writer] in
29 |                 try? await writer.append(
/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:7:24: error: cannot find type 'DispatchQueue' in scope
 5 | /// writer swap is durable before the old StreamWriter is closed.
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
 8 |     private let group = DispatchGroup()
 9 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:8:25: error: cannot find 'DispatchGroup' in scope
 6 | final class StreamWriterPump {
 7 |     private let queue: DispatchQueue
 8 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
 9 |
10 |     init(label: String) {
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:17: error: cannot find 'DispatchQueue' in scope
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                 `- error: cannot find 'DispatchQueue' in scope
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:11:51: error: cannot infer contextual base in reference to member 'userInitiated'
 9 |
10 |     init(label: String) {
11 |         queue = DispatchQueue(label: label, qos: .userInitiated)
   |                                                   `- error: cannot infer contextual base in reference to member 'userInitiated'
12 |     }
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/StreamWriterPump.swift:22:29: error: cannot find 'DispatchSemaphore' in scope
20 |         group.enter()
21 |         queue.async {
22 |             let semaphore = DispatchSemaphore(value: 0)
   |                             `- error: cannot find 'DispatchSemaphore' in scope
23 |             Task { [writer] in
24 |                 try? await writer.append(
[9/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[10/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[11/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[12/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[13/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[14/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[15/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 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:352:59: error: cannot find 'DispatchTime' in scope
 350 |         }
 351 |
 352 |         let boundaryNs = activeClock?.nowMonotonicNs() ?? DispatchTime.now().uptimeNanoseconds
     |                                                           `- error: cannot find 'DispatchTime' in scope
 353 |         var reportsById: [String: StreamStopReport] = [:]
 354 |         var commitError: Error?
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:434:18: error: cannot find 'DispatchTime' in scope
 432 |             throw SessionError.invalidTransition(from: state, to: .stopping)
 433 |         }
 434 |         let t0 = DispatchTime.now().uptimeNanoseconds
     |                  `- error: cannot find 'DispatchTime' in scope
 435 |
 436 |         // Give external wireless cameras a head start on waking their BLE
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:460:27: error: cannot find 'DispatchTime' in scope
 458 |             }
 459 |         }
 460 |         let tAfterChirp = DispatchTime.now().uptimeNanoseconds
     |                           `- error: cannot find 'DispatchTime' in scope
 461 |         NSLog("[SDK.stopRecording] chirp+tail done elapsedMs=\((tAfterChirp - t0) / 1_000_000)")
 462 |         await stopPreparationTask.value
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:479:33: error: cannot find 'DispatchTime' in scope
 477 |         var firstError: Error?
 478 |         let stopWallClockMs = UInt64(Date().timeIntervalSince1970 * 1000)
 479 |         let tBeforeStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                 `- error: cannot find 'DispatchTime' in scope
 480 |         await withTaskGroup(of: (StreamStopReport?, Error?).self) { group in
 481 |             for s in streams {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:485:30: error: cannot find 'DispatchTime' in scope
 483 |                 let id = s.streamId
 484 |                 group.addTask { [s] in
 485 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 486 |                     let result: (StreamStopReport?, Error?)
 487 |                     do {
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:510:38: error: cannot find 'DispatchTime' in scope
 508 |                         }
 509 |                     }
 510 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 511 |                     NSLog("[SDK.stopRecording] stream=\(id) stop elapsedMs=\(elapsedMs)")
 512 |                     return result
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:522:32: error: cannot find 'DispatchTime' in scope
 520 |             }
 521 |         }
 522 |         let tAfterStreamStop = DispatchTime.now().uptimeNanoseconds
     |                                `- error: cannot find 'DispatchTime' in scope
 523 |         NSLog("[SDK.stopRecording] all streams stopped elapsedMs=\((tAfterStreamStop - tBeforeStreamStop) / 1_000_000)")
 524 |
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:532:25: error: cannot find 'DispatchTime' in scope
 530 |         // write hand_quality.json. Failures here are non-fatal (a recording
 531 |         // without quality metadata is still a valid recording).
 532 |         let tBeforeHQ = DispatchTime.now().uptimeNanoseconds
     |                         `- error: cannot find 'DispatchTime' in scope
 533 |         if let monitor = handQualityMonitor {
 534 |             let stopNs = activeClock?.nowMonotonicNs() ?? recordingStartMonotonicNs
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:545:24: error: cannot find 'DispatchTime' in scope
 543 |             try? HandQualitySummaryBuilder.write(summary, to: summaryURL)
 544 |         }
 545 |         let tAfterHQ = DispatchTime.now().uptimeNanoseconds
     |                        `- error: cannot find 'DispatchTime' in scope
 546 |         NSLog("[SDK.stopRecording] hand quality finalize elapsedMs=\((tAfterHQ - tBeforeHQ) / 1_000_000)")
 547 |         // EventWriter is finalized as part of monitor.finalize; drop the reference
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:597:30: error: cannot find 'DispatchTime' in scope
 595 |                 }
 596 |                 group.addTask { [stream, recoverable] in
 597 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 598 |                     do {
 599 |                         let recovered = try await recoverable.recoverUnconfirmedManualStop(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:602:42: error: cannot find 'DispatchTime' in scope
 600 |                             stopWallClockMs: manualStopWallClockMs,
 601 |                             reason: reason)
 602 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 603 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) recovered elapsedMs=\(elapsedMs)")
 604 |                         return (StreamStopReport(
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:611:42: error: cannot find 'DispatchTime' in scope
 609 |                             incompleteReason: reason), nil)
 610 |                     } catch {
 611 |                         let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                          `- error: cannot find 'DispatchTime' in scope
 612 |                         NSLog("[SDK.manualStopRecovery] stream=\(stream.streamId) failed elapsedMs=\(elapsedMs)")
 613 |                         return (nil, StreamError(streamId: stream.streamId, underlying: error))
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:790:30: error: cannot find 'DispatchTime' in scope
 788 |                 }
 789 |                 group.addTask { [stream, preparable] in
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
     |                              `- error: cannot find 'DispatchTime' in scope
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
/host/spi-builder-workspace/Sources/SyncField/SessionOrchestrator.swift:792:38: error: cannot find 'DispatchTime' in scope
 790 |                     let t0 = DispatchTime.now().uptimeNanoseconds
 791 |                     await preparable.prepareToStopRecording()
 792 |                     let elapsedMs = (DispatchTime.now().uptimeNanoseconds - t0) / 1_000_000
     |                                      `- error: cannot find 'DispatchTime' in scope
 793 |                     NSLog("[SDK.stopRecording] stream=\(stream.streamId) stop prep elapsedMs=\(elapsedMs)")
 794 |                 }
[16/56] Compiling SyncField CountdownSpec.swift
[17/56] Compiling SyncField CountdownTickPlayer.swift
[18/56] Compiling SyncField CalibrationScaling.swift
[19/56] Compiling SyncField CameraCalibrationProber.swift
[20/56] Compiling SyncField PhotoCalibrationProbeExecutor.swift
[21/56] Compiling SyncField ProbedCameraCalibration.swift
[22/56] Compiling SyncField StereoExtrinsicsMath.swift
[23/56] Compiling SyncField CameraTimestamps.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[24/56] Compiling SyncField FrameProcessorGate.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[25/56] Compiling SyncField MultiCamCameraStream.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[26/56] Compiling SyncField TactileAcquireFailure.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[27/56] Compiling SyncField TactileBLEClient.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[28/56] Compiling SyncField TactilePacketParser.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[29/56] Compiling SyncField TactileRoleRegistry.swift
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:17:24: error: cannot find type 'DispatchQueue' in scope
15 | /// required on their side.
16 | final class FrameProcessorGate: @unchecked Sendable {
17 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
18 |     private let lock = NSLock()
19 |     private var busy = false
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:21:30: error: cannot find type 'DispatchQoS' in scope
19 |     private var busy = false
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
   |                              `- error: cannot find type 'DispatchQoS' in scope
22 |         self.queue = DispatchQueue(label: label, qos: qos)
23 |     }
/host/spi-builder-workspace/Sources/SyncField/Streams/FrameProcessorGate.swift:22:22: error: cannot find 'DispatchQueue' in scope
20 |
21 |     init(label: String, qos: DispatchQoS = .userInitiated) {
22 |         self.queue = DispatchQueue(label: label, qos: qos)
   |                      `- error: cannot find 'DispatchQueue' in scope
23 |     }
24 |
[30/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[31/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[32/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[33/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[34/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[35/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[36/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 |
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:25: error: cannot find 'DispatchQueue' in scope
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                         `- error: cannot find 'DispatchQueue' in scope
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneMotionStream.swift:13:72: error: cannot infer contextual base in reference to member 'userInitiated'
 11 |
 12 |     private let rateHz: Double
 13 |     private let queue = DispatchQueue(label: "syncfield.motion", qos: .userInitiated)
    |                                                                        `- error: cannot infer contextual base in reference to member 'userInitiated'
 14 |
 15 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.device-motion.writer")
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:6:56: error: cannot find type 'OperationQueue' in scope
  4 | #endif
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
    |                                                        `- error: cannot find type 'OperationQueue' in scope
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:21:26: error: cannot find type 'OperationQueue' in scope
 19 |     private let rateHz: Double
 20 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-accel.writer")
 21 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
 22 |     private var frameCount = 0
 23 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:121:26: error: cannot find type 'OperationQueue' in scope
119 |     private let rateHz: Double
120 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-gyro.writer")
121 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
122 |     private var frameCount = 0
123 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:221:26: error: cannot find type 'OperationQueue' in scope
219 |     private let rateHz: Double
220 |     private let rotatingWriter = RotatingSensorWriter(label: "syncfield.raw-mag.writer")
221 |     private var opQueue: OperationQueue?
    |                          `- error: cannot find type 'OperationQueue' in scope
222 |     private var frameCount = 0
223 |     private var healthBus: HealthBus?
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:7:17: error: cannot find 'OperationQueue' in scope
  5 |
  6 | private func makeRawIMUOperationQueue(name: String) -> OperationQueue {
  7 |     let queue = OperationQueue()
    |                 `- error: cannot find 'OperationQueue' in scope
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
/host/spi-builder-workspace/Sources/SyncField/Streams/iPhoneRawIMUStreams.swift:9:31: error: cannot infer contextual base in reference to member 'userInitiated'
  7 |     let queue = OperationQueue()
  8 |     queue.maxConcurrentOperationCount = 1
  9 |     queue.qualityOfService = .userInitiated
    |                               `- error: cannot infer contextual base in reference to member 'userInitiated'
 10 |     queue.name = name
 11 |     return queue
[37/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[38/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[39/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[40/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[41/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[42/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 |     }
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:11:24: error: cannot find type 'DispatchQueue' in scope
 9 | /// a deterministic drain point.
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
   |                        `- error: cannot find type 'DispatchQueue' in scope
12 |     private let group = DispatchGroup()
13 |
/host/spi-builder-workspace/Sources/SyncField/Writers/SensorWriterPump.swift:12:25: error: cannot find 'DispatchGroup' in scope
10 | final class SensorWriterPump {
11 |     private let queue: DispatchQueue
12 |     private let group = DispatchGroup()
   |                         `- error: cannot find 'DispatchGroup' in scope
13 |
14 |     init(label: String) {
[43/56] Compiling SyncField AVAudioEngineChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[44/56] Compiling SyncField AudioReattachableStream.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[45/56] Compiling SyncField AudioSessionInterruptionHandler.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[46/56] Compiling SyncField AudioSessionPolicy.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[47/56] Compiling SyncField ChirpPlayer.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[48/56] Compiling SyncField ChirpSynthesis.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[49/56] Compiling SyncField ChirpTypes.swift
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:20:25: error: cannot find 'DispatchQueue' in scope
18 | /// can do `await` work without blocking the notification dispatch.
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
   |                         `- error: cannot find 'DispatchQueue' in scope
21 |                                        qos: .userInitiated)
22 |     private var token: NSObjectProtocol?
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:21:46: error: cannot infer contextual base in reference to member 'userInitiated'
19 | public final class AudioSessionInterruptionHandler: @unchecked Sendable {
20 |     private let queue = DispatchQueue(label: "syncfield.audio.interruption",
21 |                                        qos: .userInitiated)
   |                                              `- error: cannot infer contextual base in reference to member 'userInitiated'
22 |     private var token: NSObjectProtocol?
23 |     private let onRecover: @Sendable () async -> Void
/host/spi-builder-workspace/Sources/SyncField/Audio/AudioSessionInterruptionHandler.swift:45:28: error: cannot find 'NotificationCenter' in scope
43 |
44 |     public func stop() {
45 |         if let t = token { NotificationCenter.default.removeObserver(t) }
   |                            `- error: cannot find 'NotificationCenter' in scope
46 |         token = nil
47 |     }
/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 |
[50/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 |     }
[51/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 |     }
[52/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 |     }
[53/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 |     }
[54/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 |     }
[55/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 |     }
[56/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 |     }
BUILD FAILURE 6.1 wasm