From 629f2e0043d2f7341cb47322c7a4f11754b605c6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 7 Dec 2025 23:43:50 +0100 Subject: [PATCH] fix: stop voice wake tester after short post-trigger silence --- apps/macos/Sources/Clawdis/VoiceWakeTester.swift | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/macos/Sources/Clawdis/VoiceWakeTester.swift b/apps/macos/Sources/Clawdis/VoiceWakeTester.swift index 8433a65fe..72302821d 100644 --- a/apps/macos/Sources/Clawdis/VoiceWakeTester.swift +++ b/apps/macos/Sources/Clawdis/VoiceWakeTester.swift @@ -161,15 +161,17 @@ final class VoiceWakeTester { private func holdUntilSilence(onUpdate: @escaping @Sendable (VoiceWakeTestState) -> Void) { Task { [weak self] in guard let self else { return } - let start = self.detectionStart ?? Date() - let deadline = start.addingTimeInterval(10) + let detectedAt = Date() + let hardStop = detectedAt.addingTimeInterval(3) // cap overall listen after trigger + let silenceWindow: TimeInterval = 0.8 + while !self.isStopping { let now = Date() - if now >= deadline { break } - if let last = self.lastHeard, now.timeIntervalSince(last) >= 1 { + if now >= hardStop { break } + if let last = self.lastHeard, now.timeIntervalSince(last) >= silenceWindow { break } - try? await Task.sleep(nanoseconds: 250_000_000) + try? await Task.sleep(nanoseconds: 200_000_000) } if !self.isStopping { self.stop()