Greg Mousseau
68db055f1a
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
2026-03-01 20:03:26 +05:30
Greg Mousseau
f0fcecd7c1
feat(android): ElevenLabsStreamingTts — WebSocket streaming TTS with PCM playback
...
Streams text to the ElevenLabs WebSocket API and plays audio in real-time
via AudioTrack (PCM 24kHz). Key design points:
- sendText(fullText) takes the full accumulated text and only transmits the
new suffix, detecting divergence for restart
- Chunks are queued if the WebSocket isn't yet connected; flushed in onOpen
- finish() sends EOS to ElevenLabs; deferred if called before onOpen fires
- sendText returns true (not false) when finished=true to avoid treating a
normal end-of-stream as a diverge restart
- finishStreamingTts coroutine uses identity check before nulling streamingTts
to prevent a mid-drain restart from orphaning a live TTS session
- eleven_v3 does NOT support WebSocket streaming; use eleven_flash_v2_5
2026-03-01 20:03:26 +05:30
Ayaan Zaidi
1d7b76a90e
fix(android-voice): rotate playback token per assistant reply
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
addc619087
fix(android-voice): retry talk config after transient failures
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
930e94024a
fix(android-voice): cancel in-flight speech when speaker muted
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
727ae469cf
perf(android): reduce mic conversation update churn
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
3daed77ba9
fix(android): unify voice speaker gating and config refresh
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
72e135083a
feat(android-voice): add speaker toggle in voice tab
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
fb92a91ef7
fix(android): speak final voice replies in mic capture flow
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
fcf3e5b0a0
fix(android): expose talk-mode assistant speech entrypoint
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
eea081c709
fix(android): update onboarding pairing commands
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
548a28a13f
fix(android): request onboarding permissions per toggle
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
3f056a7294
fix(android): block onboarding advance until special setup is complete
2026-02-28 12:29:52 +05:30
Ayaan Zaidi
cd61edb0f3
fix(android): add missing capability setup surfaces
2026-02-28 12:29:52 +05:30
Ayaan Zaidi
f1bb26642c
fix(gateway): scope notification wakeups to session
2026-02-28 11:18:01 +05:30
Ayaan Zaidi
9d3ccf4754
feat(gateway): enable Android notify + notification events
2026-02-28 11:18:01 +05:30
Ayaan Zaidi
1bc9da8f9e
fix(android): stabilize motion sampling and gate pedometer command
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
18e7938dfd
refactor(android): remove unreachable motion classify branch
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
943dce37be
feat(android): wire new device capabilities into runtime
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
b9e474deb4
feat(android): add motion activity and pedometer handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
f75385981a
feat(android): add calendar capability handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
81ebe7de46
feat(android): add contacts capability handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
c8ad229776
feat(android): add photos latest handler
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
f637cbd246
feat(android): add system notification handler
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
3f06693e7d
refactor(android): share node capability and command manifest
2026-02-28 08:46:50 +05:30
Ayaan Zaidi
3a35035512
fix(android): send object params for canvas capability refresh
2026-02-27 13:26:42 +05:30
Ayaan Zaidi
6222d6650b
fix(android): avoid duplicate A2UI readiness probe on happy path
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
8187fbc571
fix(android): refresh scoped canvas URLs without trailing slash
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
d53b24d185
fix(android): return valid debug.ed25519 diagnostics JSON
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
34486f8c10
fix(android): retry A2UI after canvas capability refresh
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
0896bb09b0
feat(android): wire runtime canvas capability refresh
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
22d422a792
refactor(android-node): share battery snapshot parsing across device handlers
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
284f75500c
refactor(android-node): unify notifications snapshot rebind preflight
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
bbab0b005e
fix(android): rebind listener before notification actions
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
8807267bfd
fix(android): allow open and reply on non-clearable notifications
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
d0ec3de588
feat(android): implement device diagnostics and notification actions
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
e99b323a6b
feat(node): add device diagnostics and notification action commands
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
e48513d512
fix(android): scale invoke result ack timeout to invoke budget
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
1f7b3c613d
feat(android): add camera list and device selection
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
0f7664fda3
fix(android): reject non-positive camera maxWidth
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
adb41e48ae
test(android): cover camera clip payload size guard
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
fb34c46074
refactor(android): make camera clip transport deterministic
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
120a7abbab
test(android): cover camera clip upload URL JSON parsing
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
67609cc16f
fix(android): parse camera and screen invoke params as JSON
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
cf327f60ba
fix(android): require validated network for device status
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
d14e734e9c
refactor(android): remove dead thermal sdk branch
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
d768c1f81c
feat(android): wire device commands into runtime
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
67f6a13c5a
feat(android): add device status and info handler
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
551647aa96
feat(android): add device invoke protocol commands
2026-02-26 21:26:11 +05:30
Peter Steinberger
081b1aa1ed
refactor(gateway): unify v3 auth payload builders and vectors
2026-02-26 15:08:50 +01:00