From dd2df0d6880240903073c020162ca66451df13a7 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Fri, 26 Jun 2026 18:47:25 +0200 Subject: [PATCH 1/3] fix(tasks): keep conversation modal closable --- .../tasks/conversations/create-conversation-modal.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx index d796c334cd..2b295780a0 100644 --- a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx +++ b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx @@ -5,8 +5,8 @@ import { useTaskSettings } from '@renderer/features/tasks/hooks/useTaskSettings' import { conversationRegistry } from '@renderer/features/tasks/stores/conversation-registry'; import { AgentSelector } from '@renderer/lib/components/agent-selector/agent-selector'; import { type BaseModalProps } from '@renderer/lib/modal/modal-provider'; -import { useCloseGuard } from '@renderer/lib/modal/use-close-guard'; import { useAgents } from '@renderer/lib/stores/use-agents'; +import { Button } from '@renderer/lib/ui/button'; import { ConfirmButton } from '@renderer/lib/ui/confirm-button'; import { DialogContentArea, @@ -28,6 +28,7 @@ import { nextDefaultConversationTitle } from './conversation-title-utils'; import { useEffectiveProvider } from './use-effective-provider'; export const CreateConversationModal = observer(function CreateConversationModal({ + onClose, onSuccess, projectId, taskId, @@ -43,7 +44,6 @@ export const CreateConversationModal = observer(function CreateConversationModal const [error, setError] = useState(null); const [autoApproveOverride, setAutoApproveOverride] = useState(null); const [selectedModel, setSelectedModel] = useState(null); - useCloseGuard(isSubmitting); const { data: agents } = useAgents(); const modelsCapability = agents?.find((a) => a.id === providerId)?.capabilities.models; @@ -158,8 +158,12 @@ export const CreateConversationModal = observer(function CreateConversationModal {error &&

{error}

} - + + void handleCreateConversation()} disabled={createDisabled || isSubmitting} > From 26e345244c8e25ba8c7dc0af6c633ad459a47a75 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Fri, 26 Jun 2026 19:04:25 +0200 Subject: [PATCH 2/3] fix(tasks): remove conversation cancel button --- .../tasks/conversations/create-conversation-modal.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx index 2b295780a0..5d589348f1 100644 --- a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx +++ b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx @@ -6,7 +6,6 @@ import { conversationRegistry } from '@renderer/features/tasks/stores/conversati import { AgentSelector } from '@renderer/lib/components/agent-selector/agent-selector'; import { type BaseModalProps } from '@renderer/lib/modal/modal-provider'; import { useAgents } from '@renderer/lib/stores/use-agents'; -import { Button } from '@renderer/lib/ui/button'; import { ConfirmButton } from '@renderer/lib/ui/confirm-button'; import { DialogContentArea, @@ -28,7 +27,6 @@ import { nextDefaultConversationTitle } from './conversation-title-utils'; import { useEffectiveProvider } from './use-effective-provider'; export const CreateConversationModal = observer(function CreateConversationModal({ - onClose, onSuccess, projectId, taskId, @@ -158,10 +156,7 @@ export const CreateConversationModal = observer(function CreateConversationModal {error &&

{error}

} - - + void handleCreateConversation()} From 88f6f4eaccdaa345db604bc1c92ca66e29b2e084 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Fri, 26 Jun 2026 19:14:51 +0200 Subject: [PATCH 3/3] fix(tasks): ignore dismissed conversation create --- .../features/tasks/conversations/create-conversation-modal.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx index 5d589348f1..1b1c3678b5 100644 --- a/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx +++ b/apps/emdash-desktop/src/renderer/features/tasks/conversations/create-conversation-modal.tsx @@ -5,6 +5,7 @@ import { useTaskSettings } from '@renderer/features/tasks/hooks/useTaskSettings' import { conversationRegistry } from '@renderer/features/tasks/stores/conversation-registry'; import { AgentSelector } from '@renderer/lib/components/agent-selector/agent-selector'; import { type BaseModalProps } from '@renderer/lib/modal/modal-provider'; +import { modalStore } from '@renderer/lib/modal/modal-store'; import { useAgents } from '@renderer/lib/stores/use-agents'; import { ConfirmButton } from '@renderer/lib/ui/confirm-button'; import { @@ -81,9 +82,11 @@ export const CreateConversationModal = observer(function CreateConversationModal title, model: selectedModel ?? undefined, }); + if (modalStore.activeModalArgs?.onSuccess !== onSuccess) return; setIsSubmitting(false); onSuccess({ conversationId: id }); } catch { + if (modalStore.activeModalArgs?.onSuccess !== onSuccess) return; setError('Failed to create conversation'); setIsSubmitting(false); }