From c1fc2001219eb9aa349439b3007b57e1ced25335 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 19 Oct 2026 11:20:12 +0200 Subject: assistant: a mic button asks by voice Each recording is a pw-record Process of its own, made from a Component like the Do row's runs, so a stopped recording's late exit cannot be read as the next one's. Stopping sets running to false (SIGTERM), which lets pw-record write the WAV header; the audio ask goes out from the process's exit, not from the click. Recording stops itself at 59 s: the daemon refuses over 60 s by file size, and the stop lands a little after the tick. Escape cancels a recording before it does anything else, and closing the card or losing the daemon cancels it too. A pw-record that ends on its own says "recording failed". Checked: a scratch harness saw transcribing, thinking, idle for a 2 s recording; by hand, every case in the spec passed with no pw-record left behind, a desktop shell reload mid-recording included. Co-Authored-By: Claude Opus 5.5 --- docs/superpowers/specs/2026-10-19-assistant-mic-design.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'docs/superpowers/specs/2026-10-19-assistant-mic-design.md') diff --git a/docs/superpowers/specs/2026-10-19-assistant-mic-design.md b/docs/superpowers/specs/2026-10-19-assistant-mic-design.md index 444c323..118ab08 100644 --- a/docs/superpowers/specs/2026-10-19-assistant-mic-design.md +++ b/docs/superpowers/specs/2026-10-19-assistant-mic-design.md @@ -1,6 +1,6 @@ # Assistant mic: design -Date: 2026-10-19. Status: proposed. +Date: 2026-10-19. Status: implemented and checked by hand (2026-10-19). ## Goal @@ -88,3 +88,10 @@ By hand, `pgrep -a pw-record` empty after each: - `./reload.sh desktop` while recording: no stray `pw-record`; - Stop while transcribing: the turn ends, idle; - with a file staged: the question goes with the file. + +Checked 2026-10-19, all passed, no `pw-record` left after any: a voice +question answered; Escape cancelled, a second Escape closed the card; +closing mid-recording sent nothing; a long recording stopped at 59 s and +was transcribed right; `./reload.sh desktop` mid-recording; Stop while +transcribing; a question about a staged file. The scratch harness also +saw `transcribing`, `thinking`, `idle` for a 2 s recording. -- cgit v1.2.3