frank-medium: serve the new R9700s, retire frank-small

The RTX 3090 left Dankserver; two AMD Radeon AI PRO R9700 cards (Navi 48,
gfx1201, 32,624 MiB each) replaced it. FreeToken/CUDA cannot run there at all,
so the `frank-small` service is retired and `frank-medium` takes the endpoint.

New service: charlie12345/ROCmFPX llama.cpp (built for gfx1201 against the
fork's self-contained ROCm 7.14 toolchain, so the host's stale /opt/rocm-6.3.3
never participates) serving kingjones777/Qwen3.8-27B-ROCmFPX-Q8_0-AGENT-GGUF --
a Q8_0_ROCMFPX_AGENT (ftype 115) checkpoint that stock llama.cpp cannot load.
Placeholder config: --split-mode tensor across both cards, 131072 context,
1 slot, f16 KV, MTP draft head on ROCm0.

deploy-remote.sh grows retire_root_llm_small(): the CUDA-era unit is stopped,
disabled and moved to ~/.AGENTTRASH/20260915-frank-small-retire/host-units
before frank-medium starts, because `systemctl disable` has been observed to
delete the unit file itself on this host (2026-08-26 incident).

The retired frank-small repo files (env, unit, serve script) move to
scripts/.AGENTTRASH/, and the planner, dispatcher, service allow-list and the
deployment test seams now name frank-medium.
This commit is contained in:
Frank committed 2026-09-15 18:53:20 -07:00
1 parent 27e63359d6
commit 6085a99dd8
14 files changed
+454 -192

No files matched your search

+8 -7
View File
@@ -60,7 +60,7 @@ SERVICE_ORDER = (
"lidarr",
"readarr",
"frank-large",
"frank-small",
"frank-medium",
)
DANKCLAW_SERVICES = {
@@ -107,7 +107,7 @@ DANKSERVER_SERVICES = {
"sonarr",
"lidarr",
"readarr",
"frank-small",
"frank-medium",
}
# FrankBook-Pro runs the *arr stack + qBittorrent inside a podman machine on
@@ -368,12 +368,13 @@ def services_for_path(path: str, target: str) -> set[str]:
if parts[0] == "scripts":
name = p.name
if name in {"frank-small.env", "frank-small.service", "serve-frank-small.sh"}:
_add(services, "frank-small")
if name in {"frank-medium.env", "frank-medium.service", "serve-frank-medium.sh"}:
_add(services, "frank-medium")
elif name == "chat-template.jinja":
# Only frank-small consumes this template now: frank-large runs
# halogen-flash-server, which owns its own chat handling.
_add(services, "frank-small")
# frank-medium reads this template only when its env file points
# at it (the GGUF's embedded template is the default); frank-large
# runs halogen-flash-server, which owns its own chat handling.
_add(services, "frank-medium")
elif name in {"homepage-status.py", "homepage-status.service", "homepage-status.timer"}:
_add(services, "homepage")
# Deployment/test/benchmark scripts and other repo tooling do not