Workers screen shows each agent's version and protocol, and who is behind
The hello carries the fluksio-worker version. An agent refused for an older protocol stays listed as Needs upgrade until it attaches again. Docs gain an Upgrading workers section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WgBfkm4rCmtd1T4vHWjEPx
This commit is contained in:
@@ -4677,6 +4677,21 @@ export const WorkerInfoSchema = {
|
||||
}
|
||||
],
|
||||
title: 'Ram Mb'
|
||||
},
|
||||
protocol: {
|
||||
type: 'integer',
|
||||
title: 'Protocol',
|
||||
default: 0
|
||||
},
|
||||
version: {
|
||||
type: 'string',
|
||||
title: 'Version',
|
||||
default: ''
|
||||
},
|
||||
behind: {
|
||||
type: 'boolean',
|
||||
title: 'Behind',
|
||||
default: false
|
||||
}
|
||||
},
|
||||
type: 'object',
|
||||
|
||||
@@ -1534,6 +1534,9 @@ export type WorkerInfo = {
|
||||
cpus?: number;
|
||||
gpus?: number;
|
||||
ram_mb?: (number | null);
|
||||
protocol?: number;
|
||||
version?: string;
|
||||
behind?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
FlavorsService,
|
||||
WorkersService,
|
||||
} from "@/client"
|
||||
import { Badge } from "@/components/ui/badge"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import {
|
||||
Dialog,
|
||||
@@ -172,15 +173,38 @@ function Attached() {
|
||||
</span>
|
||||
) : null}
|
||||
</span>
|
||||
<span className="pl-6 font-mono text-xs text-muted-foreground">
|
||||
{worker.cpus} cpu
|
||||
{worker.gpus ? ` · ${worker.gpus} gpu` : ""}
|
||||
{worker.ram_mb ? ` · ${Math.round(worker.ram_mb / 1024)} GB` : ""}{" "}
|
||||
· {worker.in_flight}/{worker.max_parallel} in flight
|
||||
</span>
|
||||
{worker.behind ? (
|
||||
<span className="pl-6 text-xs text-muted-foreground">
|
||||
Refused for an older protocol. Upgrade it with{" "}
|
||||
<code className="font-mono">pip install -U fluksio-worker</code>
|
||||
</span>
|
||||
) : (
|
||||
<span className="pl-6 font-mono text-xs text-muted-foreground">
|
||||
{worker.cpus} cpu
|
||||
{worker.gpus ? ` · ${worker.gpus} gpu` : ""}
|
||||
{worker.ram_mb
|
||||
? ` · ${Math.round(worker.ram_mb / 1024)} GB`
|
||||
: ""}{" "}
|
||||
· {worker.in_flight}/{worker.max_parallel} in flight
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
<span className="text-xs text-muted-foreground">
|
||||
seen {ago(worker.last_seen ?? 0)}
|
||||
<span className="flex items-center gap-3 text-xs text-muted-foreground">
|
||||
{worker.behind ? (
|
||||
<Badge
|
||||
variant="outline"
|
||||
className="border-transparent bg-destructive/15 text-destructive"
|
||||
>
|
||||
Needs upgrade
|
||||
</Badge>
|
||||
) : null}
|
||||
<span className="font-mono">
|
||||
{worker.version ? `v${worker.version} · ` : ""}protocol{" "}
|
||||
{worker.protocol}
|
||||
</span>
|
||||
<span>
|
||||
{worker.behind ? "refused" : "seen"} {ago(worker.last_seen ?? 0)}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user