+
FlowPilot will analyze your input and guide you through diagnosis
diff --git a/frontend/src/components/flowpilot/FlowPilotOptions.tsx b/frontend/src/components/flowpilot/FlowPilotOptions.tsx
index 44d1c16f..8f9ee720 100644
--- a/frontend/src/components/flowpilot/FlowPilotOptions.tsx
+++ b/frontend/src/components/flowpilot/FlowPilotOptions.tsx
@@ -28,7 +28,7 @@ export function FlowPilotOptions({ options, onSelect, disabled }: FlowPilotOptio
onClick={() => handleSelect(option.value)}
disabled={disabled}
className={cn(
- 'group relative rounded-xl border p-4 text-left transition-all',
+ 'group relative rounded-xl border p-3 sm:p-4 text-left transition-all min-h-[44px]',
'hover:border-[rgba(6,182,212,0.3)] hover:shadow-[0_0_20px_rgba(6,182,212,0.08)]',
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40',
isSelected
diff --git a/frontend/src/components/flowpilot/FlowPilotSession.tsx b/frontend/src/components/flowpilot/FlowPilotSession.tsx
index 0f5544f5..6beb244d 100644
--- a/frontend/src/components/flowpilot/FlowPilotSession.tsx
+++ b/frontend/src/components/flowpilot/FlowPilotSession.tsx
@@ -1,5 +1,5 @@
import { useEffect, useRef, useState } from 'react'
-import { Network, Clock, Hash, Play, Ticket } from 'lucide-react'
+import { Network, Clock, Hash, Play, Ticket, ChevronDown, ChevronUp } from 'lucide-react'
import type {
AISessionDetail,
AISessionStepResponse,
@@ -60,6 +60,7 @@ export function FlowPilotSession({
const scrollRef = useRef
(null)
const [showTicketPicker, setShowTicketPicker] = useState(false)
const [linkingTicket, setLinkingTicket] = useState(false)
+ const [showMobileSidebar, setShowMobileSidebar] = useState(false)
const handleLinkTicket = async (ticketId: string, _ticket: PSATicketInfo) => {
if (!session.psa_connection_id && !session.ticket_data) {
@@ -112,7 +113,7 @@ export function FlowPilotSession({
if (isCompleted && documentation) {
return (
-
+
+ {/* Mobile sidebar summary (collapsible) */}
+
+
+ {showMobileSidebar && (
+
+ {session.psa_ticket_id ? (
+
| null}
+ />
+ ) : session.status === 'active' ? (
+
+ ) : null}
+ {session.problem_summary && (
+
+
Problem
+
{session.problem_summary}
+
+ )}
+ {session.matched_flow_id && (
+
+
+
+ {session.match_score ? `${Math.round(session.match_score * 100)}% match` : 'Match found'}
+
+
+ )}
+
+ )}
+
+
{/* Main content area: conversation + sidebar */}
{/* Conversation column */}
-
+
{allSteps.map((step) => (
- {/* Sidebar */}
+ {/* Sidebar — desktop only */}
Session paused
diff --git a/frontend/src/components/flowpilot/FlowPilotStepCard.tsx b/frontend/src/components/flowpilot/FlowPilotStepCard.tsx
index 5ed1c02f..7ce9b9df 100644
--- a/frontend/src/components/flowpilot/FlowPilotStepCard.tsx
+++ b/frontend/src/components/flowpilot/FlowPilotStepCard.tsx
@@ -70,7 +70,7 @@ export function FlowPilotStepCard({ step, isCurrentStep, isProcessing, sessionId
return (