diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx index 89f1425bda..75891f9a2a 100644 --- a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx @@ -156,12 +156,20 @@ export function ChatMessage({ } if (isClarificationNeeded && message.type === "clarification_needed") { + // Check if user already replied after this clarification (answered) + const hasUserReplyAfter = + index >= 0 && + messages + .slice(index + 1) + .some((m) => m.type === "message" && m.role === "user"); + return ( ); diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ClarificationQuestionsWidget/ClarificationQuestionsWidget.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ClarificationQuestionsWidget/ClarificationQuestionsWidget.tsx index b146eaf56c..15477c7387 100644 --- a/autogpt_platform/frontend/src/components/contextual/Chat/components/ClarificationQuestionsWidget/ClarificationQuestionsWidget.tsx +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ClarificationQuestionsWidget/ClarificationQuestionsWidget.tsx @@ -20,6 +20,7 @@ interface Props { sessionId?: string; onSubmitAnswers: (answers: Record) => void; onCancel?: () => void; + isAnswered?: boolean; className?: string; } @@ -34,6 +35,7 @@ export function ClarificationQuestionsWidget({ sessionId, onSubmitAnswers, onCancel, + isAnswered = false, className, }: Props) { const [answers, setAnswers] = useState>({}); @@ -54,11 +56,10 @@ export function ClarificationQuestionsWidget({ if (saved) { const parsed = JSON.parse(saved) as Record; setAnswers(parsed); - setIsSubmitted(false); } else { setAnswers({}); - setIsSubmitted(false); } + setIsSubmitted(false); } catch { setAnswers({}); setIsSubmitted(false); @@ -96,16 +97,17 @@ export function ClarificationQuestionsWidget({ onSubmitAnswers(answers); const storageKey = getStorageKey(sessionId); - if (storageKey) { - try { + try { + if (storageKey) { localStorage.removeItem(storageKey); - } catch {} - } + } + } catch {} } const allAnswered = questions.every((q) => answers[q.keyword]?.trim()); - if (isSubmitted) { + // Show submitted state if answered from conversation or just submitted + if (isAnswered || isSubmitted) { return (