diff --git a/web/src/app/chat/components/research-block.tsx b/web/src/app/chat/components/research-block.tsx index 47a0ded..36f47c2 100644 --- a/web/src/app/chat/components/research-block.tsx +++ b/web/src/app/chat/components/research-block.tsx @@ -65,8 +65,10 @@ export function ResearchBlock({ // When the research id changes, set the active tab to activities useEffect(() => { - setActiveTab("activities"); - }, [researchId]); + if (!hasReport) { + setActiveTab("activities"); + } + }, [hasReport, researchId]); return (
diff --git a/web/src/core/store/store.ts b/web/src/core/store/store.ts index eaaf483..ee333fe 100644 --- a/web/src/core/store/store.ts +++ b/web/src/core/store/store.ts @@ -182,24 +182,17 @@ function appendMessage(message: Message) { message.agent === "reporter" || message.agent === "researcher" ) { + if (!getOngoingResearchId()) { + const id = message.id; + appendResearch(id); + openResearch(id); + } appendResearchActivity(message); } useStore.getState().appendMessage(message); } function updateMessage(message: Message) { - if ( - message.agent === "researcher" || - message.agent === "coder" || - message.agent === "reporter" - ) { - const id = message.id; - if (!getOngoingResearchId()) { - appendResearch(id); - openResearch(id); - } - } - if ( getOngoingResearchId() && message.agent === "reporter" && @@ -244,12 +237,15 @@ function appendResearchActivity(message: Message) { const researchId = getOngoingResearchId(); if (researchId) { const researchActivityIds = useStore.getState().researchActivityIds; - useStore.setState({ - researchActivityIds: new Map(researchActivityIds).set(researchId, [ - ...researchActivityIds.get(researchId)!, - message.id, - ]), - }); + const current = researchActivityIds.get(researchId)!; + if (!current.includes(message.id)) { + useStore.setState({ + researchActivityIds: new Map(researchActivityIds).set(researchId, [ + ...current, + message.id, + ]), + }); + } if (message.agent === "reporter") { useStore.setState({ researchReportIds: new Map(useStore.getState().researchReportIds).set(