feat(llm): rename inference services dropping 'default' from names

frank-default-large -> frank-large (Dankclaw :7770), frank-default-small ->
frank-small (Dankserver :7770), frank-default-sightsound -> frank-npu
(Dankclaw :7771). Units, env files, serve scripts, deploy-plan mappings,
deploy-remote dispatch (stop/disable old units + relink + enable new), and the
test seams move together. Retired frank-default-npu.* artifacts moved to
scripts/.AGENTTRASH/ (tracked-in-history; ignored on disk).

Served aliases become frank-large / frank-small via --alias; the NPU endpoint
serves the whole FLM registry, so its rename changes no served tags.
This commit is contained in:
Frank
2026-09-03 16:15:43 -07:00
parent 1e491fa69f
commit 69f87c8483
34 changed files with 136 additions and 137 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ load helpers
}
@test "inference restarts are absent from the top-level dispatcher" {
! grep -qE 'systemctl .*restart (frank-default-small|frank-default-large)' "$REPO_ROOT/scripts/deploy.sh"
! grep -qE 'systemctl .*restart (frank-small|frank-large|frank-npu)' "$REPO_ROOT/scripts/deploy.sh"
}
@test "remote runner health-checks an inference endpoint" {
+9 -9
View File
@@ -18,26 +18,26 @@ REMOTE_DEPLOY="$REPO_ROOT/scripts/deploy-remote.sh"
@test "deployment planner maps large-model changes to the large model only" {
run python3 "$PLANNER" --target dankclaw --paths \
scripts/frank-default-large.env scripts/frank-default-large.service
scripts/frank-large.env scripts/frank-large.service
[ "$status" -eq 0 ]
[ "$output" = "frank-default-large" ]
[ "$output" = "frank-large" ]
}
@test "shared chat-template changes map to the selected host's inference service" {
run python3 "$PLANNER" --target dankclaw --paths scripts/chat-template.jinja
[ "$status" -eq 0 ]
[ "$output" = "frank-default-large" ]
[ "$output" = "frank-large" ]
run python3 "$PLANNER" --target dankserver --paths scripts/chat-template.jinja
[ "$status" -eq 0 ]
[ "$output" = "frank-default-small" ]
[ "$output" = "frank-small" ]
}
@test "deployment planner maps small-model changes to the small model only" {
run python3 "$PLANNER" --target dankserver --paths \
scripts/frank-default-small.service
scripts/frank-small.service
[ "$status" -eq 0 ]
[ "$output" = "frank-default-small" ]
[ "$output" = "frank-small" ]
}
@test "documentation-only changes plan no runtime deployment" {
@@ -69,9 +69,9 @@ REMOTE_DEPLOY="$REPO_ROOT/scripts/deploy-remote.sh"
[ "$status" -eq 0 ]
[ "$output" = "hermes" ]
run python3 "$PLANNER" --target dankclaw --paths scripts/serve-frank-default-npu.sh scripts/frank-default-npu.env
run python3 "$PLANNER" --target dankclaw --paths scripts/serve-frank-npu.sh scripts/frank-npu.env
[ "$status" -eq 0 ]
[ "$output" = "frank-default-npu" ]
[ "$output" = "frank-npu" ]
}
@test "homepage is owned by Dankclaw's consolidated proxy" {
@@ -155,7 +155,7 @@ REMOTE_DEPLOY="$REPO_ROOT/scripts/deploy-remote.sh"
grep -q 'deploy_llm_large' "$REMOTE_DEPLOY"
grep -q 'deploy_llm_small' "$REMOTE_DEPLOY"
grep -q 'deploy_service' "$REMOTE_DEPLOY"
! grep -qE 'for .*frank-default-(small|large)' "$REMOTE_DEPLOY"
! grep -qE 'for .*frank-(small|large|npu)-?' "$REMOTE_DEPLOY"
}
@test "remote runner rejects services belonging to the other host" {
+4 -4
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Seam: LLM systemd unit integrity.
# Every LLM unit (frank-default-*.service) must point at files that exist in
# Every LLM unit (frank-*.service) must point at files that exist in
# this repo. The homepage-status unit is a different pattern (it installs to
# /usr/local/bin and runs from /srv at deploy time) and is not checked here.
# The units reference absolute paths on the target checkout
@@ -50,7 +50,7 @@ unit_repo_path() {
echo "$bad"
return 1
fi
done < <(find "$REPO_ROOT/scripts" -name 'frank-default-*.service' -type f | sort)
done < <(find "$REPO_ROOT/scripts" -name "frank-*.service" -type f | grep -v AGENTTRASH | sort)
[ "$any" -eq 1 ] || skip "no LLM units yet"
}
@@ -65,7 +65,7 @@ unit_repo_path() {
echo "unit $(basename "$unit") env file $envfile not in repo"
return 1
}
done < <(find "$REPO_ROOT/scripts" -name 'frank-default-*.service' -type f | sort)
done < <(find "$REPO_ROOT/scripts" -name "frank-*.service" -type f | grep -v AGENTTRASH | sort)
}
@test "LLM serve scripts exist for every unit" {
@@ -78,5 +78,5 @@ unit_repo_path() {
echo "unit $svc: ExecStart script $script not in repo"
return 1
}
done < <(find "$REPO_ROOT/scripts" -name 'frank-default-*.service' -type f | sort)
done < <(find "$REPO_ROOT/scripts" -name "frank-*.service" -type f | grep -v AGENTTRASH | sort)
}
+2 -2
View File
@@ -4,7 +4,7 @@
# The old open-webui was a bare container on dankserver (port 3000) pointing at a
# dead LLM backend (:9090). This unit stands one up on dankclaw on a free port
# (3005), on the CPU image (dankclaw is CPU-only), wired to the live
# llama.cpp backend (192.168.0.143:7770, model frank-default-large).
# llama.cpp backend (192.168.0.143:7770, model frank-large).
load helpers
@@ -63,7 +63,7 @@ QDIR="$REPO_ROOT/dankclaw/open-webui/quadlet"
# gateway (10.89.3.1) lives in the rootless netns, NOT the host netns
# where llama-server runs -- it refuses. The host's LAN IP reaches it
# through the rootless NAT (verified from the container, 2026-08-22).
# 2026-08-22: frank-default-large moved from :52625 to :7770.
# 2026-08-22: frank-large moved from :52625 to :7770.
grep -qE '^Environment=OPENAI_API_BASE_URL=http://192\.168\.0\.143:7770' \
"$QDIR/open-webui.container" \
|| { echo "open-webui.container must set OPENAI_API_BASE_URL to the LLM at 192.168.0.143:7770"; return 1; }