diff --git a/frontend/src/components/assistant/ViewToggle.tsx b/frontend/src/components/assistant/ViewToggle.tsx
new file mode 100644
index 00000000..a0395547
--- /dev/null
+++ b/frontend/src/components/assistant/ViewToggle.tsx
@@ -0,0 +1,50 @@
+import { useNavigate } from 'react-router-dom'
+import { cn } from '@/lib/utils'
+import { useFeatureFlag } from '@/hooks/useFeatureFlag'
+
+interface ViewToggleProps {
+ currentView: 'flowpilot' | 'cockpit'
+ sessionId: string
+}
+
+export function ViewToggle({ currentView, sessionId }: ViewToggleProps) {
+ const navigate = useNavigate()
+ const hasCockpit = useFeatureFlag('flowpilot_cockpit')
+
+ if (!hasCockpit) return null
+
+ const handleSwitch = (view: 'flowpilot' | 'cockpit') => {
+ if (view === currentView) return
+ const path = view === 'cockpit'
+ ? `/cockpit/${sessionId}`
+ : `/assistant/${sessionId}`
+ navigate(path)
+ }
+
+ return (
+
+
+
+
+ )
+}
diff --git a/frontend/src/pages/CockpitPage.tsx b/frontend/src/pages/CockpitPage.tsx
index bee2c2eb..63414a2d 100644
--- a/frontend/src/pages/CockpitPage.tsx
+++ b/frontend/src/pages/CockpitPage.tsx
@@ -11,8 +11,7 @@ import { IncidentHeader } from '@/components/assistant/IncidentHeader'
import { StepsPanel } from '@/components/assistant/StepsPanel'
import { FlowPilotAsks } from '@/components/assistant/FlowPilotAsks'
import { WhatWeKnow } from '@/components/assistant/WhatWeKnow'
-// TODO: uncomment after Task 4
-// import { ViewToggle } from '@/components/assistant/ViewToggle'
+import { ViewToggle } from '@/components/assistant/ViewToggle'
import { useAssistantSession } from '@/hooks/useAssistantSession'
import { useFeatureFlag } from '@/hooks/useFeatureFlag'
import type { TriageMeta, EvidenceItem, TriageUpdate } from '@/types/ai-session'
@@ -248,8 +247,7 @@ export default function CockpitPage() {
onResolve={() => session.setShowConclude(true)}
onClose={() => session.setShowConclude(true)}
/>
- {/* TODO: uncomment after Task 4 */}
- {/* */}
+
{/* Resizable work zone + conversation log split */}
diff --git a/frontend/src/pages/FlowPilotPage.tsx b/frontend/src/pages/FlowPilotPage.tsx
index 6ff76b53..ece0c041 100644
--- a/frontend/src/pages/FlowPilotPage.tsx
+++ b/frontend/src/pages/FlowPilotPage.tsx
@@ -8,8 +8,7 @@ import { ChatMessage } from '@/components/assistant/ChatMessage'
import { TaskLane } from '@/components/assistant/TaskLane'
import { ConcludeSessionModal } from '@/components/assistant/ConcludeSessionModal'
import { StatusUpdateModal } from '@/components/flowpilot/StatusUpdateModal'
-// TODO: uncomment after Task 4
-// import { ViewToggle } from '@/components/assistant/ViewToggle'
+import { ViewToggle } from '@/components/assistant/ViewToggle'
import { useAssistantSession } from '@/hooks/useAssistantSession'
export default function FlowPilotPage() {
@@ -116,10 +115,9 @@ export default function FlowPilotPage() {
Chats
- {/* TODO: uncomment after Task 4 */}
- {/* {session.activeChatId && (
+ {session.activeChatId && (
- )} */}
+ )}