diff --git a/frontend/src/pages/CockpitPage.tsx b/frontend/src/pages/CockpitPage.tsx index 79c7bbc6..ed954d05 100644 --- a/frontend/src/pages/CockpitPage.tsx +++ b/frontend/src/pages/CockpitPage.tsx @@ -87,11 +87,23 @@ export default function CockpitPage() { prevMessageCountRef.current = session.messages.length }, [session.messages.length, showOnboarding]) - // Reset local step UI when switching cases or when a new action set arrives. + // Reset all cockpit-local state when switching cases. + // Triage data gets repopulated via onSessionLoadedRef after the async fetch. useEffect(() => { setActiveStepIndex(0) setCompletedSteps(new Set()) - }, [session.activeChatId, session.activeActions]) + setTriageMeta({ + client_name: null, asset_name: null, issue_category: null, + triage_hypothesis: null, evidence_items: [], + }) + setPsaTicketId(null) + }, [session.activeChatId]) + + // Reset step UI when a new action set arrives from AI. + useEffect(() => { + setActiveStepIndex(0) + setCompletedSteps(new Set()) + }, [session.activeActions]) // ── Triage handlers ── @@ -306,28 +318,44 @@ export default function CockpitPage() {
{/* Left: Steps panel */}
- + {session.loading && session.activeActions.length === 0 ? ( +
+ +

FlowPilot is analyzing the issue...

+
+ ) : ( + + )}
{/* Right: FlowPilot Asks + What We Know */}
- { - void session.sendMessage(answer, { clearComposer: false }) - }} - loading={session.loading} - /> - + {session.loading && session.activeQuestions.length === 0 && triageMeta.evidence_items.length === 0 ? ( +
+ +

Questions and evidence will appear here

+
+ ) : ( + <> + { + void session.sendMessage(answer, { clearComposer: false }) + }} + loading={session.loading} + /> + + + )}
diff --git a/frontend/src/pages/FlowPilotPage.tsx b/frontend/src/pages/FlowPilotPage.tsx index f8152404..f1b97156 100644 --- a/frontend/src/pages/FlowPilotPage.tsx +++ b/frontend/src/pages/FlowPilotPage.tsx @@ -149,6 +149,12 @@ export default function FlowPilotPage() {

)} + {session.messages.length === 0 && session.loading && ( +
+ +

Starting session...

+
+ )} {session.messages.map((msg, i) => (