Qwen3.x / Deepseek-R1 / o1 stream model thinking via
delta.reasoning_content during SSE; the final answer arrives later via
delta.content. Previously chat.js parsed only delta.content, so any
thinking time appeared to the user as a long empty pause followed by a
sudden answer.
Both generator functions (sendMessage, sendMessageWithCustomHistory)
gain an opts.onThinking(text) callback that fires only when the server
actually streams reasoning_content. Backward compatible: existing
callers ignore the option, see no behaviour change.
handleUserInput now passes an onThinking callback that lazy-creates a
<details class="chat-thinking"> block above the answer span on the
first reasoning delta. When the first content delta arrives, the
thinking block auto-collapses into a "thinking (click to expand)"
summary so the answer is the visible focus.
If a response never thinks (thinking off, simple prompt, etc.), no
thinking DOM element is ever created — no visual artefact at all.
Existing enable_thinking:false request bodies kept for now; this change
is rendering-only and activates automatically the moment any caller
flips thinking on.
Updates marketing copy to reflect actual production state: F5-TTS replaced
Qwen3-TTS as the default engine after head-to-head benchmarking showed
faster inference and cleaner clones on the same reference clips. Engine
count goes from 5 to 6 (F5-TTS additive). Qwen3-TTS remains wired up but
marked Self-host. Updates Makefile snippets to F5 targets, and the sidebar
nav now links F5-TTS at the top of the engine list.
Adds a third demo block for the self-recorded voice 42 alongside aria
and atlas. Updates the "what's live" copy to acknowledge that 41 voices
come from LibriSpeech public-domain and 1 is the operator's own voice.
Slot 41 left intentionally empty as a Hitchhiker tribute.
Firefox (and other browsers) block window.open popups from the
translate modal. Render translated HTML in an iframe via blob URL
instead. Fix translate modal header layout by removing negative
margin hack, use proper article padding structure. Add CSS for
iframe preview and raw HTML toggle.
The unminified bundle caused store-ready test failures in browser-toys
(all three browsers). Minification brings it well under the 1MB per-file
limit while the CDN copy remains readable source.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>