From 91eceece302bd364873505b5522d48b7bc91ab12 Mon Sep 17 00:00:00 2001 From: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com> Date: Mon, 24 Nov 2025 17:32:45 +0100 Subject: [PATCH] fix: clear pending creation prompt --- .../ChatInput/useCreationWorkspace.test.tsx | 10 +++++++++- .../components/ChatInput/useCreationWorkspace.ts | 12 +++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/browser/components/ChatInput/useCreationWorkspace.test.tsx b/src/browser/components/ChatInput/useCreationWorkspace.test.tsx index ca92702c1..3bae2683d 100644 --- a/src/browser/components/ChatInput/useCreationWorkspace.test.tsx +++ b/src/browser/components/ChatInput/useCreationWorkspace.test.tsx @@ -1,5 +1,11 @@ import type { DraftWorkspaceSettings } from "@/browser/hooks/useDraftWorkspaceSettings"; -import { getModeKey, getProjectScopeId, getThinkingLevelKey } from "@/common/constants/storage"; +import { + getInputKey, + getModeKey, + getPendingScopeId, + getProjectScopeId, + getThinkingLevelKey, +} from "@/common/constants/storage"; import type { SendMessageError } from "@/common/types/errors"; import type { BranchListResult, IPCApi, SendMessageOptions } from "@/common/types/ipc"; import type { RuntimeMode } from "@/common/types/runtime"; @@ -219,8 +225,10 @@ describe("useCreationWorkspace", () => { const modeKey = getModeKey(TEST_WORKSPACE_ID); const thinkingKey = getThinkingLevelKey(TEST_WORKSPACE_ID); + const pendingInputKey = getInputKey(getPendingScopeId(TEST_PROJECT_PATH)); expect(updatePersistedStateCalls).toContainEqual([modeKey, "plan"]); expect(updatePersistedStateCalls).toContainEqual([thinkingKey, "high"]); + expect(updatePersistedStateCalls).toContainEqual([pendingInputKey, ""]); }); test("handleSend surfaces backend errors and resets state", async () => { diff --git a/src/browser/components/ChatInput/useCreationWorkspace.ts b/src/browser/components/ChatInput/useCreationWorkspace.ts index 06eef867a..6af1bfe8b 100644 --- a/src/browser/components/ChatInput/useCreationWorkspace.ts +++ b/src/browser/components/ChatInput/useCreationWorkspace.ts @@ -7,7 +7,13 @@ import { parseRuntimeString } from "@/browser/utils/chatCommands"; import { useDraftWorkspaceSettings } from "@/browser/hooks/useDraftWorkspaceSettings"; import { readPersistedState, updatePersistedState } from "@/browser/hooks/usePersistedState"; import { useSendMessageOptions } from "@/browser/hooks/useSendMessageOptions"; -import { getModeKey, getProjectScopeId, getThinkingLevelKey } from "@/common/constants/storage"; +import { + getInputKey, + getModeKey, + getPendingScopeId, + getProjectScopeId, + getThinkingLevelKey, +} from "@/common/constants/storage"; import type { Toast } from "@/browser/components/ChatInputToast"; import { createErrorToast } from "@/browser/components/ChatInputToasts"; @@ -119,6 +125,10 @@ export function useCreationWorkspace({ // Check if this is a workspace creation result (has metadata field) if ("metadata" in result && result.metadata) { syncCreationPreferences(projectPath, result.metadata.id); + if (projectPath) { + const pendingInputKey = getInputKey(getPendingScopeId(projectPath)); + updatePersistedState(pendingInputKey, ""); + } // Settings are already persisted via useDraftWorkspaceSettings // Notify parent to switch workspace (clears input via parent unmount) onWorkspaceCreated(result.metadata);