Update auto-reply and voice wake runtime
parent
39a0f54b0d
commit
998a5b080d
File diff suppressed because it is too large
Load Diff
|
|
@ -406,21 +406,22 @@ actor VoiceWakeRuntime {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func scheduleRestartRecognizer(delay: TimeInterval = 0.7) {
|
private func restartRecognizerIfIdleAndOverlayHidden() async {
|
||||||
Task { [weak self] in
|
|
||||||
let nanos = UInt64(max(0, delay) * 1_000_000_000)
|
|
||||||
try? await Task.sleep(nanoseconds: nanos)
|
|
||||||
await self?.restartIfIdleAfterDelay()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private func restartIfIdleAfterDelay() async {
|
|
||||||
if self.isCapturing { return }
|
if self.isCapturing { return }
|
||||||
let overlayVisible = await MainActor.run { VoiceWakeOverlayController.shared.isVisible }
|
let overlayVisible = await MainActor.run { VoiceWakeOverlayController.shared.isVisible }
|
||||||
if overlayVisible { return }
|
if overlayVisible { return }
|
||||||
self.restartRecognizer()
|
self.restartRecognizer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func scheduleRestartRecognizer(delay: TimeInterval = 0.7) {
|
||||||
|
Task { [weak self] in
|
||||||
|
let nanos = UInt64(max(0, delay) * 1_000_000_000)
|
||||||
|
try? await Task.sleep(nanoseconds: nanos)
|
||||||
|
guard let self else { return }
|
||||||
|
await self.restartRecognizerIfIdleAndOverlayHidden()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func applyPushToTalkCooldown() {
|
func applyPushToTalkCooldown() {
|
||||||
self.cooldownUntil = Date().addingTimeInterval(self.debounceAfterSend)
|
self.cooldownUntil = Date().addingTimeInterval(self.debounceAfterSend)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -287,13 +287,16 @@ export async function getReplyFromConfig(
|
||||||
abortedLastRun = false;
|
abortedLastRun = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const baseEntry = !isNewSession && freshEntry ? entry : undefined;
|
||||||
sessionEntry = {
|
sessionEntry = {
|
||||||
|
...baseEntry,
|
||||||
sessionId,
|
sessionId,
|
||||||
updatedAt: Date.now(),
|
updatedAt: Date.now(),
|
||||||
systemSent,
|
systemSent,
|
||||||
abortedLastRun,
|
abortedLastRun,
|
||||||
thinkingLevel: persistedThinking,
|
// Persist previously stored thinking/verbose levels when present.
|
||||||
verboseLevel: persistedVerbose,
|
thinkingLevel: persistedThinking ?? baseEntry?.thinkingLevel,
|
||||||
|
verboseLevel: persistedVerbose ?? baseEntry?.verboseLevel,
|
||||||
};
|
};
|
||||||
sessionStore[sessionKey] = sessionEntry;
|
sessionStore[sessionKey] = sessionEntry;
|
||||||
await saveSessionStore(storePath, sessionStore);
|
await saveSessionStore(storePath, sessionStore);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue