From b5d82319d8f77963c466d395c28267d26bcccd0c Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Wed, 22 Jul 2026 15:53:27 -0500 Subject: [PATCH] fix(desktop): keep first response layout stable --- .../components/assistant-ui/thread/assistant-message.tsx | 8 ++------ apps/desktop/src/components/assistant-ui/thread/index.tsx | 8 ++------ .../desktop/src/components/assistant-ui/thread/status.tsx | 1 + 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/apps/desktop/src/components/assistant-ui/thread/assistant-message.tsx b/apps/desktop/src/components/assistant-ui/thread/assistant-message.tsx index abf5e085e0ff..8593ce104de3 100644 --- a/apps/desktop/src/components/assistant-ui/thread/assistant-message.tsx +++ b/apps/desktop/src/components/assistant-ui/thread/assistant-message.tsx @@ -15,7 +15,7 @@ import { pickPrimaryPreviewTarget } from '@/components/assistant-ui/thread/content' import { MESSAGE_PARTS_COMPONENTS } from '@/components/assistant-ui/thread/message-parts' -import { StreamStallIndicator } from '@/components/assistant-ui/thread/status' +import { ResponseLoadingIndicator, StreamStallIndicator } from '@/components/assistant-ui/thread/status' import { formatMessageTimestamp } from '@/components/assistant-ui/thread/timestamp' import { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button' import { PreviewAttachment } from '@/components/chat/preview-attachment' @@ -83,10 +83,6 @@ export const AssistantMessage: FC<{ const enterRef = useEnterAnimation(isRunning, `assistant-message:${messageId}`) - if (isPlaceholder) { - return null - } - return ( {/* Todos render in the composer status stack now, not inline. */} - {isRunning && } + {isPlaceholder ? : isRunning && } {previewTargets.length > 0 && (
{previewTargets.map(target => ( diff --git a/apps/desktop/src/components/assistant-ui/thread/index.tsx b/apps/desktop/src/components/assistant-ui/thread/index.tsx index ff30931e3f3c..984b33e0e7e5 100644 --- a/apps/desktop/src/components/assistant-ui/thread/index.tsx +++ b/apps/desktop/src/components/assistant-ui/thread/index.tsx @@ -2,11 +2,7 @@ import { type FC, useCallback, useMemo, useState } from 'react' import { AssistantMessage } from '@/components/assistant-ui/thread/assistant-message' import { ThreadMessageList } from '@/components/assistant-ui/thread/list' -import { - BackgroundResumeNotice, - CenteredThreadSpinner, - ResponseLoadingIndicator -} from '@/components/assistant-ui/thread/status' +import { BackgroundResumeNotice, CenteredThreadSpinner } from '@/components/assistant-ui/thread/status' import { SystemMessage } from '@/components/assistant-ui/thread/system-message' import { ThreadTimeline } from '@/components/assistant-ui/thread/timeline' import { type RestoreMessageTarget } from '@/components/assistant-ui/thread/types' @@ -100,7 +96,7 @@ export const Thread: FC<{ clampToComposer={clampToComposer} components={messageComponents} emptyPlaceholder={emptyPlaceholder} - loadingIndicator={loading === 'response' ? : } + loadingIndicator={} sessionKey={sessionKey} /> {loading === 'session' && } diff --git a/apps/desktop/src/components/assistant-ui/thread/status.tsx b/apps/desktop/src/components/assistant-ui/thread/status.tsx index f65793d18ca8..b239f0fb8a8f 100644 --- a/apps/desktop/src/components/assistant-ui/thread/status.tsx +++ b/apps/desktop/src/components/assistant-ui/thread/status.tsx @@ -73,6 +73,7 @@ export const ResponseLoadingIndicator: FC = () => { return (