From 966e4ae990fc8a9186a3cf407366d07d0087ff9f Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Fri, 31 Oct 2025 22:41:19 +0400 Subject: [PATCH] APP-125: Reset V1 terminal state when switching conversations by forcing remount (#11592) Co-authored-by: openhands --- .../conversation-tab-content/conversation-tab-content.tsx | 8 +++++++- frontend/src/hooks/use-terminal.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.tsx b/frontend/src/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.tsx index f8c9e35887..b9a84481e7 100644 --- a/frontend/src/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.tsx +++ b/frontend/src/components/features/conversation/conversation-tabs/conversation-tab-content/conversation-tab-content.tsx @@ -8,6 +8,7 @@ import { TabContentArea } from "./tab-content-area"; import { ConversationTabTitle } from "../conversation-tab-title"; import Terminal from "#/components/features/terminal/terminal"; import { useConversationStore } from "#/state/conversation-store"; +import { useConversationId } from "#/hooks/use-conversation-id"; // Lazy load all tab components const EditorTab = lazy(() => import("#/routes/changes-tab")); @@ -17,6 +18,7 @@ const VSCodeTab = lazy(() => import("#/routes/vscode-tab")); export function ConversationTabContent() { const { selectedTab, shouldShownAgentLoading } = useConversationStore(); + const { conversationId } = useConversationId(); const { t } = useTranslation(); @@ -78,7 +80,11 @@ export function ConversationTabContent() { {tabs.map(({ key, component: Component, isActive }) => ( - + ))} diff --git a/frontend/src/hooks/use-terminal.ts b/frontend/src/hooks/use-terminal.ts index 224feac1bf..a5f6e8286c 100644 --- a/frontend/src/hooks/use-terminal.ts +++ b/frontend/src/hooks/use-terminal.ts @@ -91,6 +91,7 @@ export const useTerminal = () => { return () => { terminal.current?.dispose(); + lastCommandIndex.current = 0; }; }, []);