token streaming & reasoning display: live SSE tokens frontend to back
Nightly Build / build (push) Successful in 6m59s
Nightly Build / build (push) Successful in 6m59s
- Add StreamDelta(SseDecoder) framing shared by OpenAI/Anthropic - OpenAiClient: stream=true + reasoning_content deltas, index-based tool_calls accumulation, usage from final chunk - AnthropicClient: message_start/content_block_*/message_delta events, thinking_delta->reasoning, input_json_delta->tool input - TokenDelta ServerEvent variant wired through ChatHub + WS broadcast - Frontend throttled flush (~15 Hz), pending bubble mutate-in-place, reasoning as collapsed-by-default <details> - Drop streaming bubble on error/llm_failed/model_fallback - i18n: chat.reasoning key added to en/fr/it
This commit is contained in:
@@ -633,6 +633,7 @@ fn build_items<'a>(
|
||||
"failed": failed,
|
||||
"input_tokens": msg.input_tokens,
|
||||
"output_tokens": msg.output_tokens,
|
||||
"reasoning": msg.reasoning_content,
|
||||
}));
|
||||
} else {
|
||||
if !msg.content.trim().is_empty() {
|
||||
@@ -643,6 +644,7 @@ fn build_items<'a>(
|
||||
"failed": failed,
|
||||
"input_tokens": msg.input_tokens,
|
||||
"output_tokens": msg.output_tokens,
|
||||
"reasoning": msg.reasoning_content,
|
||||
}));
|
||||
}
|
||||
for tc in &tool_calls {
|
||||
|
||||
Reference in New Issue
Block a user