diff --git a/apps/ios/Sources/Voice/TalkModeManager.swift b/apps/ios/Sources/Voice/TalkModeManager.swift index d3adb49e1b..6886666a3e 100644 --- a/apps/ios/Sources/Voice/TalkModeManager.swift +++ b/apps/ios/Sources/Voice/TalkModeManager.swift @@ -17,6 +17,7 @@ final class TalkModeManager: NSObject { var statusText: String = "Off" private let audioEngine = AVAudioEngine() + private var inputTapInstalled = false private var speechRecognizer: SFSpeechRecognizer? private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest? private var recognitionTask: SFSpeechRecognitionTask? @@ -160,6 +161,7 @@ final class TalkModeManager: NSObject { input.removeTap(onBus: 0) let tapBlock = Self.makeAudioTapAppendCallback(request: request) input.installTap(onBus: 0, bufferSize: 2048, format: format, block: tapBlock) + self.inputTapInstalled = true self.audioEngine.prepare() try self.audioEngine.start() @@ -185,7 +187,10 @@ final class TalkModeManager: NSObject { self.recognitionTask = nil self.recognitionRequest?.endAudio() self.recognitionRequest = nil - self.audioEngine.inputNode.removeTap(onBus: 0) + if self.inputTapInstalled { + self.audioEngine.inputNode.removeTap(onBus: 0) + self.inputTapInstalled = false + } self.audioEngine.stop() self.speechRecognizer = nil } diff --git a/apps/ios/Tests/GatewaySettingsStoreTests.swift b/apps/ios/Tests/GatewaySettingsStoreTests.swift index 255c7aac9b..cd9842239c 100644 --- a/apps/ios/Tests/GatewaySettingsStoreTests.swift +++ b/apps/ios/Tests/GatewaySettingsStoreTests.swift @@ -7,8 +7,8 @@ private struct KeychainEntry: Hashable { let account: String } -private let gatewayService = "bot.molt.gateway" -private let nodeService = "bot.molt.node" +private let gatewayService = "ai.openclaw.gateway" +private let nodeService = "ai.openclaw.node" private let instanceIdEntry = KeychainEntry(service: nodeService, account: "instanceId") private let preferredGatewayEntry = KeychainEntry(service: gatewayService, account: "preferredStableID") private let lastGatewayEntry = KeychainEntry(service: gatewayService, account: "lastDiscoveredStableID")