From 0f0a2dddfe6174d6f2aacf9f9487b1cfaf0e0853 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 8 Dec 2025 17:06:12 +0100 Subject: [PATCH] chore: use 5s silence before speech, 2s after --- apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift b/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift index 0c215bafe..49f6c6bca 100644 --- a/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift +++ b/apps/macos/Sources/Clawdis/VoiceWakeRuntime.swift @@ -28,7 +28,10 @@ actor VoiceWakeRuntime { private var currentConfig: RuntimeConfig? // Tunables + // Silence threshold once we've captured user speech (post-trigger). private let silenceWindow: TimeInterval = 2.0 + // Silence threshold when we only heard the trigger but no post-trigger speech yet. + private let triggerOnlySilenceWindow: TimeInterval = 5.0 // Maximum capture duration from trigger until we force-send, to avoid runaway sessions. private let captureHardStop: TimeInterval = 120.0 private let debounceAfterSend: TimeInterval = 0.35 @@ -233,7 +236,8 @@ actor VoiceWakeRuntime { return } - if let last = self.lastHeard, now.timeIntervalSince(last) >= self.silenceWindow { + let silenceThreshold = self.heardBeyondTrigger ? self.silenceWindow : self.triggerOnlySilenceWindow + if let last = self.lastHeard, now.timeIntervalSince(last) >= silenceThreshold { await self.finalizeCapture(config: config) return }