Merge pull request 'docs: auto-speak narrates every turn' (#38) from docs/dankvoice-narration-cadence into main

This commit was merged in pull request #38.
This commit is contained in:
2026-10-19 13:33:42 -07:00
2 changed files with 20 additions and 8 deletions
+10 -4
View File
@@ -83,16 +83,22 @@ saved sink. Thinking narration rides the same arming (`thinking: true`).
## Limits ## Limits
* Auto-speak narrates thinking and the final message only — mid-turn tool * Auto-speak narrates **each turn** — the assistant's prose and thinking while
chatter is never spoken; skipped in `print`/`json` modes so benches stay the agent is still working — plus the settled final answer, spoken once. A
silent. turn that lands while audio is still playing is dropped, not queued or
interrupting; tool-only turns stay silent; `print`/`json` modes never speak,
so benches stay quiet. Narration goes through the humanizer, so it lags its
turn by a rewrite round trip; `/say humanize off` removes the lag.
* Arming is read at startup only — see **Arming auto-speak** above. A session
that never speaks is unarmed, not broken; `/say on` before debugging.
* frank-tts deployment, voice packs and the registry are owned by the * frank-tts deployment, voice packs and the registry are owned by the
`serverAppConfigs` repo (`serverAppConfigs-docs/Dankclaw/Frank TTS.md`). `serverAppConfigs` repo (`serverAppConfigs-docs/Dankclaw/Frank TTS.md`).
## Citations ## Citations
* Package repo `dank/dankvoice` (README, `docs/decisions/`) — behaviour and * Package repo `dank/dankvoice` (README, `docs/decisions/`) — behaviour and
knob truth. knob truth. `docs/decisions/2026-10-19-turn-narration.md` records why
narration rides `turn_end` and not only `agent_end`.
* Gitea issues #21, #23, #27, #32 (drop-in history) and #34 (this cutover) * Gitea issues #21, #23, #27, #32 (drop-in history) and #34 (this cutover)
on `dank/command-center`. on `dank/command-center`.
* Live endpoint probes 2026-10-18/19 documented in those issues. * Live endpoint probes 2026-10-18/19 documented in those issues.
+10 -4
View File
@@ -20,10 +20,16 @@ on its concept page, linked here. Never re-expand an entry in place.
Sessions spoke only on explicit `/say`: the settings file carried no `auto` Sessions spoke only on explicit `/say`: the settings file carried no `auto`
key, and arming is session-scoped by design (`/say on` never persists). Set key, and arming is session-scoped by design (`/say on` never persists). Set
`"auto": true` in `~/.omp/cache/dankvoice.json`. Law: silence at session start `"auto": true` in `~/.omp/cache/dankvoice.json`. Same report, second half:
is a config state — read `/say status` for `auto-speak on`, then watch auto-speak listened only to `agent_end` — a settle that fires once per prompt
`pgrep -a pw-play` for one player per segment, before blaming the endpoint. and is skipped outright when the harness schedules a continuation — so nothing
Details: [dankvoice](core/dankvoice.md). was narrated while an agent worked; fixed in dank/dankvoice#3, which narrates
`turn_end` as well. Law: silence at session start is a config state — read
`/say status` for `auto-speak on`, then watch `pgrep -a pw-play` for one player
per segment, before blaming the endpoint. Law: whether the harness delivers an
event to extensions is settled in minutes by a throwaway probe extension that
timestamps `turn_end`/`agent_end` — never inferred from audio timing, which the
humanizer lags by seconds. Details: [dankvoice](core/dankvoice.md).
## 2026-10-19 — LazyVim installed as an NVIM_APPNAME profile ## 2026-10-19 — LazyVim installed as an NVIM_APPNAME profile