[taskboard] add direct host dispatch targets

This commit is contained in:
2026-03-07 13:09:22 -08:00
parent 73da5ae6d2
commit 85c5ab10b0
17 changed files with 441 additions and 32 deletions

View File

@@ -45,7 +45,7 @@ export function AgentsClient({
<CardHeader>
<CardTitle>Configured Agent Runtimes</CardTitle>
<CardDescription>
OpenClaw swarm members and ZeroClaw host runtimes from the tracked fleet model with heartbeat and dispatch overlays.
OpenClaw swarm members, ZeroClaw runtimes, and direct host targets from the tracked fleet model with heartbeat and dispatch overlays.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 md:grid-cols-[1fr_220px]">
@@ -58,6 +58,7 @@ export function AgentsClient({
<option value="">All families</option>
<option value="openclaw">OpenClaw</option>
<option value="zeroclaw">ZeroClaw</option>
<option value="direct">Direct</option>
</Select>
</CardContent>
</Card>
@@ -75,7 +76,9 @@ export function AgentsClient({
<CardDescription>{agent.role}</CardDescription>
</div>
<div className="flex gap-2">
<Badge variant={agent.family === "openclaw" ? "default" : "success"}>{agent.family}</Badge>
<Badge variant={agent.family === "openclaw" ? "default" : agent.family === "zeroclaw" ? "success" : "warning"}>
{agent.family}
</Badge>
<Badge variant="secondary">{agent.status}</Badge>
</div>
</div>

View File

@@ -27,7 +27,7 @@ export function DispatchHistory({
<p className="text-sm text-slate-400">Task #{event.task_id} {event.assignee || "unassigned"} {event.host || "n/a"}</p>
</div>
<div className="flex gap-2">
<Badge variant={event.family === "zeroclaw" ? "success" : "default"}>
<Badge variant={event.family === "zeroclaw" ? "success" : event.family === "direct" ? "warning" : "default"}>
{event.family || "manual"}
</Badge>
<Badge variant={event.event_type === "dispatch_failed" ? "warning" : "secondary"}>

View File

@@ -21,7 +21,13 @@ const COLUMNS: TaskStatus[] = ["Backlog", "Todo", "In Progress", "Review", "Done
const PRIORITIES: TaskPriority[] = ["Low", "Medium", "High", "Critical"];
function familyVariant(family: string | null) {
return family === "zeroclaw" ? "success" : "default";
if (family === "zeroclaw") {
return "success";
}
if (family === "direct") {
return "warning";
}
return "default";
}
function dispatchVariant(state: TaskRecord["dispatch_state"]) {
@@ -159,7 +165,7 @@ export function TasksClient({
<CardHeader>
<CardTitle>Unified Task Intake</CardTitle>
<CardDescription>
Create typed tasks, apply dispatch templates, and route work to OpenClaw or ZeroClaw.
Create typed tasks, apply dispatch templates, and route work to OpenClaw, ZeroClaw, or direct host targets.
</CardDescription>
</CardHeader>
<CardContent>
@@ -286,7 +292,7 @@ export function TasksClient({
<CardHeader>
<CardTitle>Recent Dispatch Activity</CardTitle>
<CardDescription>
Latest control-plane events across both families.
Latest control-plane events across all configured task families.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 lg:grid-cols-3">