Vision
Voice should be fully configurable with selectable modes. This issue covers Mode 1 — hands-off command mode on the Repositories page: a keyword layer so you can drive it without touching the screen.
Behaviour
Continuous listening on the repos page; spoken keywords trigger actions on a "focused" repo:
- "next" → move focus to the next repo and start telling me about it (auto-play its last reply / status).
- "play" → play the focused repo's last reply (karaoke running text already built).
- "record" → start recording a voice reply to the focused repo (sends straight to its agent).
- (extensible) "stop", "open", "previous", "status".
A visible "focused repo" pointer so navigation is obvious. A wake/enable toggle so it isn't always listening.
Configurable
Settings (Profile or a voice settings panel):
- Enable/disable hands-off mode.
- Edit the trigger words (e.g. map "go" → next).
- Voice (TTS) rate/voice pick; continuous-listen on/off.
Implementation notes
- Continuous
SpeechRecognition (continuous=true, interimResults) with a small grammar matcher over final transcripts; debounce + restart on onend (Chrome stops after silence).
- Reuse the existing
playRepoLastReply / voiceReplyToRepo / status polling — this is a command router on top of them + a focusedRepoId pointer.
- iOS caveat: Web Speech continuous mode is unreliable on Safari; degrade to tap-to-talk there and document it.
Acceptance
On the repos page, with the mode on, saying "next … play … record" navigates + plays + records hands-free; trigger words are editable in settings.
Relationship
Mode 2 (the cross-repo Overseer agent) is its own issue — this is the lightweight command layer; the Overseer is the conversational brain.
Vision
Voice should be fully configurable with selectable modes. This issue covers Mode 1 — hands-off command mode on the Repositories page: a keyword layer so you can drive it without touching the screen.
Behaviour
Continuous listening on the repos page; spoken keywords trigger actions on a "focused" repo:
A visible "focused repo" pointer so navigation is obvious. A wake/enable toggle so it isn't always listening.
Configurable
Settings (Profile or a voice settings panel):
Implementation notes
SpeechRecognition(continuous=true, interimResults) with a small grammar matcher over final transcripts; debounce + restart ononend(Chrome stops after silence).playRepoLastReply/voiceReplyToRepo/ status polling — this is a command router on top of them + afocusedRepoIdpointer.Acceptance
On the repos page, with the mode on, saying "next … play … record" navigates + plays + records hands-free; trigger words are editable in settings.
Relationship
Mode 2 (the cross-repo Overseer agent) is its own issue — this is the lightweight command layer; the Overseer is the conversational brain.