Adds the dedicated 4-section handoff-context view that renders BEFORE
the FlowPilot session for senior techs picking up an escalated
session, then dissolves on "Start here". This is the wedge's
demonstrable magic moment — what the GTM Loom records.
- HandoffContextScreen.tsx: pure presentational, takes a HandoffResponse
plus onStartHere / onDismiss callbacks. Sections: header
(problem summary, domain, step count, escalated-time, priority badge),
"What's been tried" (engineer notes + step-count affordance), "AI
assessment" (likely_cause / suggested_steps / confidence badge), Start
here CTA. Confidence badge accepts both numeric (0..1) and string
("low"/"medium"/"high") shapes — backend currently emits the latter.
Renders an explicit "assessment unavailable" branch when
ai_assessment_data is null (the 5s timeout from 9bdd995 fired).
Honors prefers-reduced-motion (animate-fade-in vs animate-slide-up).
ARIA dialog + focus on the primary CTA. Esc dismisses when used as a
re-openable overlay; pre-claim, Start here is the only exit.
- FlowPilotSessionPage.tsx: on /pilot/:id?pickup=true, fetch the
handoff list via handoffsApi.listHandoffs (account-scoped via RLS,
no claim required) and find the latest unclaimed escalate handoff.
If found, render the magic-moment screen and skip the regular
loadSession (the senior isn't yet escalated_to_id, so GET would
404). Start here calls claimHandoff, drops the pickup query param,
dismisses the screen — the existing loadSession effect then fires
because the senior is now escalated_to_id. A "Context" toolbar
button on active sessions re-opens the screen as a dismissible
overlay (visible only when the senior arrived via the magic-moment
flow this session — handoff lookup on demand).
Verified end-to-end against the running dev stack: listHandoffs
returns the unclaimed handoff with full payload; claim flips session
status from escalated → active; subsequent GET succeeds. tsc -b clean.
Defers (TODO followups): suggested-step chips below the chat input
that prefill on click (requires threading through to
FlowPilotMessageBar); snapshot expansion to include the recent
diagnostic steps pre-claim; toolbar Context button on sessions where
the senior didn't arrive via magic-moment.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
19 lines
994 B
TypeScript
19 lines
994 B
TypeScript
export { FlowPilotIntake } from './FlowPilotIntake'
|
|
export { FlowPilotSession } from './FlowPilotSession'
|
|
export { FlowPilotStepCard } from './FlowPilotStepCard'
|
|
export { FlowPilotOptions } from './FlowPilotOptions'
|
|
export { FlowPilotActionBar } from './FlowPilotActionBar'
|
|
export { ConfidenceIndicator } from './ConfidenceIndicator'
|
|
export { SessionDocView } from './SessionDocView'
|
|
export { AISessionListItem } from './AISessionListItem'
|
|
export { SessionTicketCard } from './SessionTicketCard'
|
|
export { EscalateModal } from './EscalateModal'
|
|
export { EscalationQueue } from './EscalationQueue'
|
|
export { EscalationMetricCard } from './EscalationMetricCard'
|
|
export { SessionBriefing } from './SessionBriefing'
|
|
export { HandoffContextScreen } from './HandoffContextScreen'
|
|
export { ProposalCard } from './ProposalCard'
|
|
export { ProposalDetail } from './ProposalDetail'
|
|
export { InSessionScriptGenerator } from './InSessionScriptGenerator'
|
|
export { StatusUpdateModal } from './StatusUpdateModal'
|