v4.1.3
Fleet can tell you which machine is generating, and how fast.
It already knew which models were resident on a remote box; it could not tell you whether anything was being done with them. GPU utilisation answers that badly — a 0.6B model held 260 tok/s on an RTX 3090 while the counter read 0 %.
- Every machine reports the decode rate its runtime measured. The number appears in three places — the sidebar row, the Fleet tile, and the machine's own page — for Linux and Mac agents alike, and every card that was there before is unchanged. Two sources, because the runtimes disagree about how to expose it: llama.cpp's
/metrics(start it with--metrics), and LM Studio vialms log stream --json --stats. Ollama publishes no server-side rate at all, so it stays absent rather than reporting a zero — a missing measurement and a measured 0 tok/s are different facts. (#37, asked for by @vade) - Every rate is shown with when it was measured, and dims once it stops describing the present. These are counts of work a runtime already finished, not a live gauge, and a rate presented bare reads as "right now".
- Card titles are proportional. In SF Mono,
Gis aCwith a short bar at mid-right, and at 9.5 pt that was enough to make the CPU and GPU cards hard to tell apart at a glance. Monospace is there to hold columns still and a title sits in no column, so it was costing letter shapes for nothing. Every reading, column and row label stays monospaced. (#36, reported by @Borda)
Also — three ways the machine list could strand you
- Unpairing a machine left no way back. The detail view checked its cached readings before the pairing state, so a machine that had stopped authenticating kept rendering the snapshot it happened to hold while the Pair button sat in an unreachable branch. This also covers the case that is not a user action: an agent reinstalled with a fresh token starts answering 401.
- A discovered machine can now be removed. mDNS finds it again a second later, so removal records the choice rather than deleting an address — and the sidebar offers it back, because a live machine that vanishes with no way to restore it is worse than one row too many.
- The window could freeze while reading a pairing token. Discovery runs on the main actor and read the Keychain once per machine on every discovery change; a slow securityd, or an access prompt, stopped the whole app until it answered. Tokens are now read once per launch.