feat: add streaming responses with optional toggle

- Add server-sent events (SSE) streaming support for real-time token display
- Implement progressive markdown rendering during streaming
- Add stream toggle in API settings (defaults to disabled for compatibility)
- Add visual streaming indicator with pulsing animation
- Graceful fallback to non-streaming mode when disabled
- Fix character saving bug (camelCase parameter naming)

Backend changes:
- New chat_stream command with SSE parsing
- Added futures and bytes dependencies
- Emit chat-token events progressively to frontend
- Support for OpenAI-compatible and Anthropic streaming formats

Frontend changes:
- Dual code paths for streaming/non-streaming
- Real-time markdown and syntax highlighting during streaming
- Stream status indicator with animation
This commit is contained in:
2025-10-12 11:38:40 -07:00
parent 2761fe395d
commit 6a8f1e0996
6 changed files with 310 additions and 21 deletions

View File

@@ -104,6 +104,13 @@
</select>
</div>
<div class="form-group">
<label>
<input type="checkbox" id="stream-toggle" />
Enable streaming responses (real-time token display)
</label>
</div>
<div id="validation-message" class="validation-message"></div>
<button type="submit" id="save-settings-btn" class="btn-primary" disabled>