Skip to content

Commit 0ec3689

Browse files
committed
feat: Show thinking block before actual message
1 parent 65ca9f9 commit 0ec3689

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,11 @@
175175
aria-label="Assistant message with actions"
176176
>
177177
{#if thinkingContent}
178-
<ChatMessageThinkingBlock reasoningContent={thinkingContent} isStreaming={!message.timestamp} />
178+
<ChatMessageThinkingBlock
179+
reasoningContent={thinkingContent}
180+
isStreaming={!message.timestamp}
181+
hasRegularContent={!!messageContent?.trim()}
182+
/>
179183
{/if}
180184

181185
{#if message?.role === 'assistant' && !message.content && isLoading()}

tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageThinkingBlock.svelte

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,20 @@
88
interface Props {
99
reasoningContent: string | null;
1010
isStreaming?: boolean;
11+
hasRegularContent?: boolean;
1112
class?: string;
1213
}
1314
14-
let { reasoningContent, isStreaming = false, class: className = '' }: Props = $props();
15+
let { reasoningContent, isStreaming = false, hasRegularContent = false, class: className = '' }: Props = $props();
1516
16-
let isExpanded = $state(false);
17+
let isExpanded = $state(true);
18+
19+
// Auto-collapse when reasoning finishes and regular content starts
20+
$effect(() => {
21+
if (!isStreaming && hasRegularContent && reasoningContent) {
22+
isExpanded = false;
23+
}
24+
});
1725
</script>
1826

1927
<Card class="border-muted bg-muted/30 mb-6 gap-0 py-0 {className}">

0 commit comments

Comments
 (0)