feat(android): wire TalkModeManager into NodeRuntime for voice screen TTS

TalkModeManager is instantiated lazily in NodeRuntime and drives ElevenLabs
streaming TTS for all assistant responses when the voice screen is active.
MicCaptureManager continues to own STT and chat.send; TalkModeManager is
TTS-only (ttsOnAllResponses = true, setEnabled never called).

- talkMode.ttsOnAllResponses = true when mic is enabled or voice screen active
- Barge-in: tapping the mic button calls stopTts() before re-enabling mic
- Lifecycle: PostOnboardingTabs LaunchedEffect + VoiceTabScreen onDispose both
  call setVoiceScreenActive(false) so TTS stops cleanly on tab switch or
  app backgrounding
- applyMainSessionKey wires the session key into TalkModeManager so it
  subscribes to the correct chat session for TTS
This commit is contained in:
Greg Mousseau
2026-02-28 01:32:45 -05:00
committed by Ayaan Zaidi
parent f0fcecd7c1
commit 68db055f1a
6 changed files with 581 additions and 32 deletions

1
.gitignore vendored
View File

@@ -120,3 +120,4 @@ dist/protocol.schema.json
# Synthing
**/.stfolder/
apps/android/.kotlin/