fix(node): prevent iOS VoiceWake crash

This commit is contained in:
Peter Steinberger
2025-12-12 23:06:17 +00:00
parent 952d924581
commit e502ad13f9
7 changed files with 18 additions and 21 deletions

View File

@@ -82,7 +82,7 @@ actor BridgeClient {
var line = Data()
line.append(data)
line.append(0x0A)
try await withCheckedThrowingContinuation { (cont: CheckedContinuation<Void, Error>) in
try await withCheckedThrowingContinuation(isolation: nil) { (cont: CheckedContinuation<Void, Error>) in
connection.send(content: line, completion: .contentProcessed { err in
if let err { cont.resume(throwing: err) } else { cont.resume(returning: ()) }
})
@@ -104,7 +104,7 @@ actor BridgeClient {
}
private func receiveChunk(over connection: NWConnection) async throws -> Data {
try await withCheckedThrowingContinuation { (cont: CheckedContinuation<Data, Error>) in
try await withCheckedThrowingContinuation(isolation: nil) { (cont: CheckedContinuation<Data, Error>) in
connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { data, _, isComplete, error in
if let error {
cont.resume(throwing: error)

View File

@@ -19,8 +19,9 @@ final class BridgeDiscoveryModel: ObservableObject {
func start() {
if self.browser != nil { return }
let params = NWParameters.tcp
params.includePeerToPeer = true
let browser = NWBrowser(
for: .bonjour(type: ClawdisBonjour.bridgeServiceType, domain: nil),
for: .bonjour(type: ClawdisBonjour.bridgeServiceType, domain: ClawdisBonjour.bridgeServiceDomain),
using: params)
browser.stateUpdateHandler = { [weak self] state in

View File

@@ -111,7 +111,7 @@ actor BridgeSession {
var line = Data()
line.append(data)
line.append(0x0A)
try await withCheckedThrowingContinuation { (cont: CheckedContinuation<Void, Error>) in
try await withCheckedThrowingContinuation(isolation: nil) { (cont: CheckedContinuation<Void, Error>) in
connection.send(content: line, completion: .contentProcessed { err in
if let err { cont.resume(throwing: err) } else { cont.resume(returning: ()) }
})
@@ -134,7 +134,7 @@ actor BridgeSession {
private func receiveChunk() async throws -> Data {
guard let connection = self.connection else { return Data() }
return try await withCheckedThrowingContinuation { (cont: CheckedContinuation<Data, Error>) in
return try await withCheckedThrowingContinuation(isolation: nil) { (cont: CheckedContinuation<Data, Error>) in
connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { data, _, isComplete, error in
if let error {
cont.resume(throwing: error)