diff --git a/src/components/chat/view/ChatInterface.tsx b/src/components/chat/view/ChatInterface.tsx index 7544ee44..76afbe4d 100644 --- a/src/components/chat/view/ChatInterface.tsx +++ b/src/components/chat/view/ChatInterface.tsx @@ -286,6 +286,11 @@ function ChatInterface({ handlePermissionDecision, }), [pendingPermissionRequests, handlePermissionDecision]); + // Mirrors ChatComposer's own visibility check so the message pane can + // reserve enough bottom space to keep the floating status tab from + // overlapping the last message. + const hasActivityIndicator = Boolean(sessionActivity && pendingPermissionRequests.length === 0); + if (!selectedProject) { const selectedProviderLabel = provider === 'cursor' @@ -321,6 +326,7 @@ function ChatInterface({ onTouchMove={handleScroll} isLoadingSessionMessages={isLoadingSessionMessages} isProcessing={isProcessing} + hasActivityIndicator={hasActivityIndicator} chatMessages={chatMessages} selectedSession={selectedSession} currentSessionId={currentSessionId} diff --git a/src/components/chat/view/subcomponents/ChatMessagesPane.tsx b/src/components/chat/view/subcomponents/ChatMessagesPane.tsx index 6c9ba116..ccf6ea21 100644 --- a/src/components/chat/view/subcomponents/ChatMessagesPane.tsx +++ b/src/components/chat/view/subcomponents/ChatMessagesPane.tsx @@ -24,6 +24,8 @@ interface ChatMessagesPaneProps { isLoadingSessionMessages: boolean; /** True while the viewed session has an active provider run in flight. */ isProcessing?: boolean; + /** True while ChatComposer's floating activity/stop tab is rendered above the input. */ + hasActivityIndicator?: boolean; chatMessages: ChatMessage[]; selectedSession: ProjectSession | null; currentSessionId: string | null; @@ -73,6 +75,7 @@ function ChatMessagesPane({ onTouchMove, isLoadingSessionMessages, isProcessing = false, + hasActivityIndicator = false, chatMessages, selectedSession, currentSessionId, @@ -161,7 +164,9 @@ function ChatMessagesPane({ ref={scrollContainerRef} onWheel={onWheel} onTouchMove={onTouchMove} - className="chat-messages-pane relative min-h-0 flex-1 overflow-y-auto overflow-x-hidden py-3 sm:py-4" + className={`chat-messages-pane relative min-h-0 flex-1 overflow-y-auto overflow-x-hidden pt-3 sm:pt-4 ${ + hasActivityIndicator ? 'pb-12 sm:pb-14' : 'pb-3 sm:pb-4' + }`} >