A control plane of this release asks every node for vLLM. An agent of the last one does not know how to install it, and answered "unsupported", so a cluster half way through its upgrade showed every node as failing. Agents now say which engines they can install (Register.installable_engines), and are asked for no others; an agent that says nothing is asked for llama.cpp alone, as it always was. doctor reports the CPU's vector extensions, and warns when AVX2 is missing, with the fix for a VM: the test node for node add was one, on QEMU's default CPU model, where llama.cpp runs several times slower and nothing else looks wrong. node add shows it, since it runs doctor. The changelog's unreleased section was two releases' worth of sections one after the other, with two lists of fixes and the upgrade notes in the middle. It is one entry now: largest changes first, the fixes together, and every upgrade note at the end, with vLLM's default install and how to keep your own. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
28 lines
956 B
Go
28 lines
956 B
Go
package agentsvc
|
|
|
|
import (
|
|
"slices"
|
|
"testing"
|
|
|
|
llmgwv1 "gitea.mynodes.xyz/ilker/llmgw/api/gen/llmgw/v1"
|
|
"gitea.mynodes.xyz/ilker/llmgw/internal/agent/provision"
|
|
)
|
|
|
|
func TestANodeIsAskedOnlyForEnginesItCanInstall(t *testing.T) {
|
|
// An agent older than the list says nothing, and could install llama.cpp
|
|
// alone. Asked for vLLM, it showed as failing until it was upgraded.
|
|
if got := installable(&llmgwv1.Register{}); !slices.Equal(got, []string{"llamacpp"}) {
|
|
t.Errorf("an agent that said nothing: %v", got)
|
|
}
|
|
// This agent says what it can, and that is vLLM and SGLang besides.
|
|
now := &llmgwv1.Register{InstallableEngines: provision.Installable()}
|
|
for _, e := range []string{"llamacpp", "vllm", "sglang"} {
|
|
if !slices.Contains(installable(now), e) {
|
|
t.Errorf("this agent does not offer %s: %v", e, installable(now))
|
|
}
|
|
}
|
|
if slices.Contains(installable(now), "uv") {
|
|
t.Error("uv, a tool for the others, is offered as an engine")
|
|
}
|
|
}
|