Semantic versioning for the launcher CLI (sm121). The add-on image has its
own version and its own sm121/CHANGELOG.md; do not mix them.
⚡ bench button now opens a
bench window instead of firing the standard run blindly: choose recipe,
cluster, target node (node), run host (ssh_host, e.g. pluto.lan),
label, seed, concurrency, parallel, timeout, tokenizer, perf-only, depth and
no-think. The choices persist in localStorage (sm121-bench-params).GET /api/bench/log?recipe=… tail-reads the newest
bench log for the recipe; the window polls it while the run starts so early
failures (readiness, tokenizer, harness) are visible before a long wait.POST /api/bench/cancel sets the job's cancellation flag;
run_tool polls it and kills the tool-eval-bench child (also the SSH child
for remote runs), so the job finishes failed and the log stops.bench…, and the last recipe/job is restored on reload.node, seed, concurrency, parallel, timeout,
tokenizer, no_think; the report row's bench button posts to the parent
dashboard and opens the window.[flare.clusters.<our-cluster>]). The flat
orbit_cluster is a fallback for serve, not for the dashboard/health: our
clusters share nodes (dgx1 is rank 0 of prod4, 6nodes-switch, 2nodes-dac,
qwen38 and 1node-1), so probing an unpaired cluster with sparks made the
sparks lane look like that cluster's lane. serve now refuses an unpaired
FLARE cluster instead of silently launching onto the flat default.◆ prod4 badge
(orbit + controller + live groups; dimmed when nothing runs), and the topology
frame/chip labels include the orbit. health folds only the selected cluster's
lane, not every lane that shares its controller..sm121-flare-package.json (repo, revision, TP, package version,
local model.safetensors). A serve with a matching marker — checked against
the CURRENT flare models list --json version, so a lab re-cut under the same
revision is detected — skips both flare download verification and the
500 GB copy.rsync. The local mirror uses
rsync -a --delete (marker excluded), so a changed/stale package copies only
the changed files; a partial mirror resumes instead of being wiped and
re-copied. Download/mirror/orbit launch all use long-running SSH (the 5 s
inactivity timeout used to kill a 500 GB copy or a detached launch).POST /api/settings/extra/check validates without
writing; parse errors report line/column for the textarea; Ctrl+Enter
saves. The private block stays in /data/config-extra.toml, edited in the
dashboard's settings window.flare download now resolves the prepared package through
flare models list --json instead of failing on the metadata-only
"Resolved package" line.flare download gets --tensor-parallel from the recipe's launch
size; a TP4 package is no longer rejected as "TP size 1".weights/ and deployments/ companions; it clears the destination first
and runs over a long-lived SSH session (read-only package files and a 500 GB
copy must not be killed by the 5 s inactivity timeout).flare download and flare orbit run also use long-running SSH, so
a cached-package verification or a detached launch is not cut short.serve records the recipe directory name, not the display
name field — the old recipe.name lookup failed with
recipe dir not found for 'DeepSeek-V4.1-Flash-1017 (…) '.gb10: production recipe updated to the 2026-10-27 package
(c32, 1 GiB row cache, resident scales, --served-model-name).sm121 installed with cargo install --path . --force; version
now follows Cargo.toml, not a hard-coded 0.1.0.