Skip to content

feat: streaming replies, stop/cancel, thinking traces, in-app voice, GPU backend selector#38

Merged
linuscooper merged 3 commits into
mainfrom
feat/streaming-voice-gpu
Jul 2, 2026
Merged

feat: streaming replies, stop/cancel, thinking traces, in-app voice, GPU backend selector#38
linuscooper merged 3 commits into
mainfrom
feat/streaming-voice-gpu

Conversation

@linuscooper

Copy link
Copy Markdown
Contributor

Closes #37

Summary

Three related upgrades to the assistant experience.

1. Streaming replies + Stop/cancel + thinking traces

  • SSE streaming from the cloud endpoint (content + reasoning deltas,
    incremental tool calls); buffered fallback when streaming isn't used.
  • Cooperative cancellation (AgentCancelToken) — Stop button aborts the HTTP
    stream and any local generation, committing whatever streamed so far.
  • Live streaming bubble with a typing indicator and a collapsible "thinking"
    (reasoning) panel; ~30fps coalesced repaints.

2. In-app voice

  • VoiceController with speech_to_text + flutter_tts: hold-to-dictate and
    tap-for-conversation, speaks replies.
  • Composer mic button + listening overlay.

3. On-device model GPU/CPU selector

  • LiteRT-LM now runs on GPU by default with automatic CPU fallback; a
    Settings toggle lets the user force CPU.

Verification

  • flutter analyze: clean.
  • Device: GPU init confirmed via Logcat (LiteRT-LM initialized on GPU backend);
    streaming + Stop + voice exercised manually.

linuscooper and others added 3 commits July 1, 2026 21:29
…GPU backend selector

- Cloud SSE streaming with reasoning deltas and incremental tool calls; buffered fallback
- Cooperative cancellation (Stop) aborting the cloud stream and local generation
- Live streaming bubble, typing indicator, collapsible thinking trace
- In-app voice: speech_to_text + flutter_tts, composer mic, listening overlay
- LiteRT-LM GPU backend with automatic CPU fallback + Settings CPU/GPU toggle
@linuscooper
linuscooper merged commit c8f581c into main Jul 2, 2026
7 checks passed
@linuscooper
linuscooper deleted the feat/streaming-voice-gpu branch July 2, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: streaming replies, stop/cancel, thinking traces, in-app voice, GPU backend selector

1 participant