frank-medium: swap ROCmFPX llama.cpp runtime for vllm-radiance MXFP4

Rootless Quadlet on dankserver serving
just1moremodel/Qwen3.8-27B-Uncensored-MXFP4-awq (the radiance stack's
designated alternate target; ships its fp8 MTP head, no rewrite step) with
the DFlash2-FP8 drafter at SPEC=7 on the 2x R9700s (TP=2, host network,
:7770, alias frank-medium unchanged).

- dankserver/frank-medium/: quadlet unit, container entrypoint (fork of
  serve-mxfp4.sh's patch block at pinned clone commit 97353293), healthcheck
- dispatcher retires the root llama.cpp unit, re-tags the registry image to
  the localhost alias, installs the quadlet, waits on /health
- planner maps dankserver/frank-medium/* to frank-medium; scripts-era
  mappings removed
- ROCmFPX-era env/serve/unit/download scripts staged in scripts/.AGENTTRASH
  with .rocmfpx suffix; seams updated (frank_medium_quadlet.bats new)
This commit is contained in:
Frank
2026-09-15 20:59:55 -07:00
parent db29c4d227
commit 6b647c1558
13 changed files with 566 additions and 47 deletions
+9 -8
View File
@@ -349,8 +349,16 @@ def services_for_path(path: str, target: str) -> set[str]:
"copyparty": {"copyparty"},
"plex": {"plex"},
"tautulli": {"tautulli"},
"frank-medium": {"frank-medium"},
}
_add(services, *quadlet_services.get(parts[1], set()))
if len(parts) >= 2 and parts[1] == "frank-medium":
# The vllm-radiance runtime since 2026-09-15: the quadlet file
# above, plus the entrypoint and healthcheck it mounts straight
# out of the checkout. Every file in the service dir is runtime
# state.
_add(services, "frank-medium")
return services
return services
if parts[0] == "frankbook-pro":
@@ -368,14 +376,7 @@ def services_for_path(path: str, target: str) -> set[str]:
if parts[0] == "scripts":
name = p.name
if name in {"frank-medium.env", "frank-medium.service", "serve-frank-medium.sh"}:
_add(services, "frank-medium")
elif name == "chat-template.jinja":
# 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"}:
if name in {"homepage-status.py", "homepage-status.service", "homepage-status.timer"}:
_add(services, "homepage")
# Deployment/test/benchmark scripts and other repo tooling do not
# restart a runtime service.