import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import type { TaskEvent, TaskRecord } from "@/lib/types"; export function DispatchHistory({ events, failedTasks, }: { events: TaskEvent[]; failedTasks: TaskRecord[]; }) { return (
Dispatch History Every dispatch request, success, failure, and acknowledgement recorded by the control plane. {events.map((event) => (

{event.summary}

Task #{event.task_id} • {event.assignee || "unassigned"} • {event.host || "n/a"}

{event.family || "manual"} {event.event_type}
{event.detail ?

{event.detail}

: null}

{event.created_at}

))}
Failure Queue Tasks with a failed dispatch state that still require operator review or retry. {failedTasks.length === 0 ? (

No failed dispatches recorded.

) : ( failedTasks.map((task) => (

{task.title}

{task.assignee || "Unassigned"} • {task.target_host || "n/a"}

{task.dispatch_state}

{task.last_error || "No error text captured."}

)) )}
); }