diff --git a/CLAUDE.md b/CLAUDE.md index 6bcbc5f..72cc9b2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -91,10 +91,17 @@ protocol; the config in `deploy/mavend.json` (with `${VAR}` env expansion from g decision, not an oversight** (Vikunja #463, `docs/plans/17-where-the-voice-loop-runs.md`). homesrv has a microphone — it is a laptop — but it is in the wrong room, so a wake-word daemon there listens to nobody. They belong on a client machine where the owner is standing. -`ipc.Dial` already takes `tcp://host:port?token=...` through the netaddr seam, so nothing -needs building to allow it, but no such machine exists yet. **The consequence: the wake -word and the VAD gate are covered by unit tests and by nothing else, and no amount of -sitting at the box changes that.** Push-to-talk through `/dash` is what QA actually covers. + +**That machine is workpc** (owner's correction, 2026-08-05). This section used to say no +such machine existed, which was written when the workstation was only a model host. It is +where he sits most of the day and it has the microphone. `ipc.Dial` already takes +`tcp://host:port?token=...` through the netaddr seam, so the two daemons need deploying, +not building. V-515 is that deployment. + +Until they are deployed, **the wake word and the VAD gate are covered by unit tests and by +nothing else**, and push-to-talk through `/dash` is what QA actually covers. Note that +deploying them does not by itself prove a wake word: `mavwaked` gates on energy and has no +keyword model (V-487), so the loop runs open until that lands. ## The ecosystem: Nexus, Praxis, Hexis diff --git a/docs/plans/17-where-the-voice-loop-runs.md b/docs/plans/17-where-the-voice-loop-runs.md index e79fd6c..eafbd83 100644 --- a/docs/plans/17-where-the-voice-loop-runs.md +++ b/docs/plans/17-where-the-voice-loop-runs.md @@ -47,7 +47,13 @@ for. QA session 1 step 2 should say what it actually covers, which is push-to-talk through `/dash`. It should not read as though it covers the voice loop. The wake path is checked -on the client machine or it is not checked, and today there is no client machine. +on the client machine or it is not checked. + +**Correction, 2026-08-05.** This plan said there was no client machine. There is: workpc, +where he sits most of the day and where the microphone is. The sentence was written when +the workstation was only a model host. The verdict above is unchanged, and so is +everything about the seam. What changes is the size of the remaining work: deploying two +daemons and asking mavend to listen on TCP, not acquiring hardware. That is the honest state, and it is worse than the task suggests: this is not a configuration gap that a compose entry closes. Until a machine with a microphone runs diff --git a/docs/qa.md b/docs/qa.md index f9073f4..cd1c808 100644 --- a/docs/qa.md +++ b/docs/qa.md @@ -1,6 +1,6 @@ # QA plan: checking Maven properly -*Last verified: 2026-08-04 @ 8d816f4. Living doc: correct it in place, do not append.* +*Last verified: 2026-08-05 @ 12667fd. Living doc: correct it in place, do not append.* Written 2026-08-01, after the 35-PR stack landed and the box came back up. Refreshed 2026-08-02 against the live list, after PRs #85-#90. @@ -255,8 +255,13 @@ room — **463**, written up in `docs/plans/17-where-the-voice-loop-runs.md`. So the wake word and the VAD gate are covered by their unit tests and by nothing else, and no session at this box changes that. Checking them needs a machine with a microphone running both binaries against a TCP-listening mavend. -`ipc.Dial` already speaks `tcp://host:port?token=...`, so the work is a machine -and a config line, not protocol work. Until then, **287** can only be +`ipc.Dial` already speaks `tcp://host:port?token=...`, so the work is not +protocol work. + +That machine is workpc (owner's correction, 05-08-2026). This section used to +call it a machine Maven does not have. That was written when the workstation +was only a model host. So the remaining work is deploying two daemons and +asking mavend to listen on TCP. Until that is done, **287** can only be half-answered, and step 2 above is push-to-talk, not the voice loop. **319's single-token bug is fixed** (01-08-2026). Single-word Russian utterances no longer come