From 317f666d4c773313c1c7f5b80d37afb671bf8764 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 9 Dec 2025 02:25:06 +0100 Subject: [PATCH] Voice wake: send or dismiss on release --- .../macos/Sources/Clawdis/VoicePushToTalk.swift | 17 +++++++++++------ .../Sources/Clawdis/VoiceWakeOverlay.swift | 6 ++++-- .../Sources/Clawdis/VoiceWakeRuntime.swift | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/apps/macos/Sources/Clawdis/VoicePushToTalk.swift b/apps/macos/Sources/Clawdis/VoicePushToTalk.swift index fd503004b..b352fd469 100644 --- a/apps/macos/Sources/Clawdis/VoicePushToTalk.swift +++ b/apps/macos/Sources/Clawdis/VoicePushToTalk.swift @@ -137,12 +137,17 @@ actor VoicePushToTalk { let chime = finalText.isEmpty ? .none : (self.activeConfig?.sendChime ?? .none) await MainActor.run { - VoiceWakeOverlayController.shared.presentFinal( - transcript: finalText, - forwardConfig: forward, - delay: finalText.isEmpty ? 0.0 : 0.8, - sendChime: chime, - attributed: attributed) + if finalText.isEmpty { + VoiceWakeOverlayController.shared.dismiss(reason: .empty) + } else { + VoiceWakeOverlayController.shared.presentFinal( + transcript: finalText, + forwardConfig: forward, + autoSendAfter: nil, + sendChime: chime, + attributed: attributed) + VoiceWakeOverlayController.shared.sendNow(sendChime: chime) + } } self.committed = "" diff --git a/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift b/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift index fffa7ffa6..3513f3a6c 100644 --- a/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift +++ b/apps/macos/Sources/Clawdis/VoiceWakeOverlay.swift @@ -52,7 +52,7 @@ final class VoiceWakeOverlayController: ObservableObject { func presentFinal( transcript: String, forwardConfig: VoiceWakeForwardConfig, - delay: TimeInterval, + autoSendAfter delay: TimeInterval?, sendChime: VoiceWakeChime = .none, attributed: NSAttributedString? = nil) { @@ -66,7 +66,9 @@ final class VoiceWakeOverlayController: ObservableObject { self.model.attributed = attributed ?? self.makeAttributed(from: transcript) self.model.level = 0 self.present() - self.scheduleAutoSend(after: delay, sendChime: sendChime) + if let delay { + self.scheduleAutoSend(after: delay, sendChime: sendChime) + } } func userBeganEditing() { diff --git a/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift b/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift index fb2cd4a33..378c6e155 100644 --- a/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift +++ b/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift @@ -316,7 +316,7 @@ actor VoiceWakeRuntime { VoiceWakeOverlayController.shared.presentFinal( transcript: finalTranscript, forwardConfig: forwardConfig, - delay: delay, + autoSendAfter: delay, sendChime: sendChime, attributed: finalAttributed) }