The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SwiftLI, reference main (760d49), with Swift 6.2 for Wasm on 26 Aug 2026 07:31:50 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/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.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1

Build Log

 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[105/168] Compiling SwiftLI KeyEvent.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[106/168] Compiling SwiftLI KeyInputRouter.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[107/168] Compiling SwiftLI KeyboardReader.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[108/168] Compiling SwiftLI LifecycleModifier.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[109/168] Compiling SwiftLI MouseEvent.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[110/168] Compiling SwiftLI MouseTargetRegistry.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[111/168] Compiling SwiftLI PreferenceKey.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[112/168] Compiling SwiftLI RenderObservation.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[113/168] Compiling SwiftLI SessionPrintCapture.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[114/168] Compiling SwiftLI State.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[115/168] Compiling SwiftLI TerminalRenderer.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
 70 | /// fatal-signal handlers.
 71 | private enum TerminalRestoreGuard {
 72 |     nonisolated(unsafe) private static var saved = termios()
    |                                                    `- error: cannot find 'termios' in scope
 73 |     nonisolated(unsafe) private static var hasSaved = false
 74 |     nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
 79 |
 80 |     /// Records the pre-raw settings and installs the exit hooks (once).
 81 |     static func arm(original: termios, mouseEnabled: Bool) {
    |                               `- error: cannot find type 'termios' in scope
 82 |         saved = original
 83 |         hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 |     private var originalConsoleMode: DWORD = 0
154 |     #else
155 |     private var originalTermios = termios()
    |                                   `- error: cannot find 'termios' in scope
156 |     #endif
157 |     private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 |     private var isActive = false
158 |     private var running = false
159 |     private var thread: Thread?
    |                         `- error: cannot find type 'Thread' in scope
160 |
161 |     /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                     `- error: cannot find 'SIGTERM' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                              `- error: cannot find 'SIGHUP' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
 90 |         // with the terminal still raw. Restore, then re-raise the default
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
    |                                      `- error: cannot find 'SIGQUIT' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
 91 |         // action so the process still dies with the correct status.
 92 |         for sig in [SIGTERM, SIGHUP, SIGQUIT] {
 93 |             signal(sig) { s in
    |             `- error: cannot find 'signal' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                 `- error: cannot find 'signal' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
 93 |             signal(sig) { s in
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
    |                           `- error: cannot find 'SIG_DFL' in scope
 96 |                 raise(s)
 97 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
 94 |                 TerminalRestoreGuard.restore()
 95 |                 signal(s, SIG_DFL)
 96 |                 raise(s)
    |                 `- error: cannot find 'raise' in scope
 97 |             }
 98 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |         `- error: cannot find 'tcsetattr' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 |             }
119 |         }
120 |         tcsetattr(STDIN_FILENO, TCSANOW, &saved)
    |                                 `- error: cannot find 'TCSANOW' in scope
121 |     }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 |         // Save and switch to raw mode (no echo, no canonical line editing,
208 |         // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
    |         `- error: cannot find 'tcgetattr' in scope
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 |         tcgetattr(STDIN_FILENO, &originalTermios)
210 |         var raw = originalTermios
211 |         cfmakeraw(&raw)
    |         `- error: cannot find 'cfmakeraw' in scope
212 |
213 |         // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 |         // (e.g. a full-viewport scroll diff) with a short write when the tty
219 |         // buffer is momentarily full. A timed read avoids touching those flags.
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
    |                                                                           `- error: cannot find type 'cc_t' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 |         let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
    |                                         `- error: cannot find 'cc_t' in scope
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 |         withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
    |                        `- error: cannot find 'VMIN' in scope
224 |                 cc[Int(VTIME)] = 1
225 |             }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 |             tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 |                 cc[Int(VMIN)] = 0
224 |                 cc[Int(VTIME)] = 1
    |                        `- error: cannot find 'VTIME' in scope
225 |             }
226 |         }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 |             }
226 |         }
227 |         tcsetattr(STDIN_FILENO, TCSANOW, &raw)
    |                                 `- error: cannot find 'TCSANOW' in scope
228 |         if enableMouse {
229 |             TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 |         isActive = true
237 |         running = true
238 |         let t = Thread { [weak self] in self?.loop() }
    |                 `- error: cannot find 'Thread' in scope
239 |         t.stackSize = 1 << 20
240 |         thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |         `- error: cannot find 'tcsetattr' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 |         SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 |         #else
254 |         tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
    |                                 `- error: cannot find 'TCSANOW' in scope
255 |         #endif
256 |         TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 |                     // the kernel queues multiple reports together (fast scroll
282 |                     // or trackpad bursts), reducing dispatch overhead and lag.
283 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
284 |                         for event in events { cb(event) }
285 |                     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 |             } else if n < 0 {
288 |                 // Read error; yield briefly and retry.
289 |                 Thread.sleep(forTimeInterval: 0.005)
    |                 `- error: cannot find 'Thread' in scope
290 |             }
291 |             // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
 93 |
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
    |               `- error: cannot find 'Thread' in scope
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
 97 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
 94 |     private static var stack: [[ObjectIdentifier: Any]] {
 95 |         get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
 96 |         set { Thread.current.threadDictionary[stackKey] = newValue }
    |               `- error: cannot find 'Thread' in scope
 97 |     }
 98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 |         if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 |             let perform = self.perform
250 |             DispatchQueue.main.async { [value] in perform(value) }
    |             `- error: cannot find 'DispatchQueue' in scope
251 |         }
252 |         return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
 60 |             // (`scheduleRender()` above already dispatches internally.)
 61 |             self.notificationScheduled()
 62 |             DispatchQueue.main.async {
    |             `- error: cannot find 'DispatchQueue' in scope
 63 |                 StateObserverRegistry.shared.notifyChange()
 64 |                 self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
 75 |     private var savedStdout: Int32 = -1
 76 |     private var readEnd: Int32 = -1
 77 |     private var drained: DispatchSemaphore?
    |                          `- error: cannot find type 'DispatchSemaphore' in scope
 78 |     private var active = false
 79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
 96 |         let saved = _dup(STDOUT_FILENO)
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
    |               `- error: cannot find 'pipe' in scope
 99 |         let saved = dup(STDOUT_FILENO)
100 |         #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
 97 |         #else
 98 |         guard pipe(&fds) == 0 else { return false }
 99 |         let saved = dup(STDOUT_FILENO)
    |                     `- error: cannot find 'dup' in scope
100 |         #endif
101 |         guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 |         _close(fds[1])
116 |         #else
117 |         guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
    |               `- error: cannot find 'dup2' in scope
118 |             close(fds[0]); close(fds[1]); close(saved)
119 |             return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 |         let readFD = fds[0]
135 |         let done = DispatchSemaphore(value: 0)
    |                    `- error: cannot find 'DispatchSemaphore' in scope
136 |         drained = done
137 |         Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 |         let done = DispatchSemaphore(value: 0)
136 |         drained = done
137 |         Thread.detachNewThread {
    |         `- error: cannot find 'Thread' in scope
138 |             var pending: [UInt8] = []
139 |             var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 |         _dup2(saved, STDOUT_FILENO)     // the pipe loses its last writer → EOF
184 |         #else
185 |         dup2(saved, STDOUT_FILENO)
    |         `- error: cannot find 'dup2' in scope
186 |         #endif
187 |         #if !os(Windows)
[116/168] Compiling SwiftLI AnyView.swift
[117/168] Compiling SwiftLI Button.swift
[118/168] Compiling SwiftLI ContentUnavailableView.swift
[119/168] Compiling SwiftLI Divider.swift
[120/168] Compiling SwiftLI EmptyView.swift
[121/168] Compiling SwiftLI ForEach.swift
[122/168] Compiling SwiftLI Form.swift
[123/168] Compiling SwiftLI Gauge.swift
[124/168] Compiling SwiftLI Grid.swift
[125/168] Compiling SwiftLI Group.swift
[126/168] Compiling SwiftLI GroupBox.swift
[127/168] Compiling SwiftLI HStack.swift
[128/168] Compiling SwiftLI Label.swift
[129/168] Compiling SwiftLI VStack.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[130/168] Compiling SwiftLI ViewThatFits.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[131/168] Compiling SwiftLI Emoticon.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[132/168] Compiling SwiftLI SwiftLogo.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[133/168] Compiling SwiftLI Commands.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[134/168] Compiling SwiftLI Environment.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[135/168] Compiling SwiftLI Border.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[136/168] Compiling SwiftLI FrameModifier.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[137/168] Compiling SwiftLI Inspector.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[138/168] Compiling SwiftLI LineLimit.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[139/168] Compiling SwiftLI Padding.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[140/168] Compiling SwiftLI Shadow.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
    |               `- error: cannot find 'Thread' in scope
289 |         set { Thread.current.threadDictionary[key] = newValue }
290 |     }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 |     private static var stack: [EnvironmentValues] {
288 |         get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 |         set { Thread.current.threadDictionary[key] = newValue }
    |               `- error: cannot find 'Thread' in scope
290 |     }
291 |
[141/168] Compiling SwiftLI LabelStyle.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[142/168] Compiling SwiftLI Link.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[143/168] Compiling SwiftLI List.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[144/168] Compiling SwiftLI Menu.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[145/168] Compiling SwiftLI Navigation.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[146/168] Compiling SwiftLI NavigationLink.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[147/168] Compiling SwiftLI NavigationSplitView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[148/168] Compiling SwiftLI NavigationStack.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[149/168] Compiling SwiftLI Picker.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[150/168] Compiling SwiftLI ProgressView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[151/168] Compiling SwiftLI ScrollView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[152/168] Compiling SwiftLI Section.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 |     /// Uses `open` on macOS and `xdg-open` on Linux.
111 |     nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 |         let process = Process()
    |                       `- error: cannot find 'Process' in scope
113 |         #if os(macOS)
114 |         process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[153/168] Compiling SwiftLI BlinkStyle.swift
[154/168] Compiling SwiftLI BorderStyle.swift
[155/168] Compiling SwiftLI Color.swift
[156/168] Compiling SwiftLI ColorScheme.swift
[157/168] Compiling SwiftLI Edge.swift
[158/168] Compiling SwiftLI EdgeInsets.swift
[159/168] Compiling SwiftLI LineStyle.swift
[160/168] Compiling SwiftLI LocalizedStringKey.swift
[161/168] Compiling SwiftLI Weight.swift
[162/168] Compiling SwiftLI View.swift
[163/168] Compiling SwiftLI ViewBuilder.swift
[164/168] Compiling SwiftLI ViewModifier.swift
BUILD FAILURE 6.2 wasm