From c0fa581c8ac563c916948f44596ef361817dc580 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sun, 7 Jun 2026 01:04:01 +0900 Subject: fix(chat): keep thinking
open while streaming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ChatView keyed the transcript each-block by object identity, but core/chunks returns new RenderedChunk objects per delta, so Svelte recreated each
/
every frame — an opened Thinking element snapped shut on the next token. Key by stable identity instead (c${seq} for committed, p${i} for append-only provisional) so streaming reuses the DOM. Adds a regression test that the
stays open across a streaming update. Verified: svelte-check 0/0, vitest 222, biome clean, build ok. --- src/features/chat/ui/ChatView.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/features/chat/ui') diff --git a/src/features/chat/ui/ChatView.svelte b/src/features/chat/ui/ChatView.svelte index a7c39cc..ce66798 100644 --- a/src/features/chat/ui/ChatView.svelte +++ b/src/features/chat/ui/ChatView.svelte @@ -5,7 +5,7 @@
- {#each chunks as rendered (rendered)} + {#each chunks as rendered, i (rendered.seq != null ? `c${rendered.seq}` : `p${i}`)}