frank-large: deployer spec gate must accept the sharded MTP layout

The 2026-10-01 first deploy refused /home/dank/models/Qwen3.5-9B because
the handler checked for a single model.safetensors (the dflash layout);
the Qwen3.5-9B MTP head ships 4 shards behind model.safetensors.index.json.
Same dual-layout acceptance as the serve script, now mirrored and gated by
the seam. The gate fired before the stop, so the live gufo unit was never
touched (health 200 throughout).
This commit is contained in:
Frank committed 2026-10-01 18:52:17 -07:00
1 parent 1127a52078
commit de383fe53e
2 files changed
+11 -2

No files matched your search

+8 -2
View File
@@ -1160,8 +1160,14 @@ deploy_llm_large() {
return 1 return 1
fi fi
if [[ -n "$spec" ]]; then if [[ -n "$spec" ]]; then
if [[ -z "$spec_dir" || ! -f "$spec_dir/model.safetensors" ]]; then # Both draft weight layouts are real: dflash ships a single
echo "ERROR: spec draft absent for FRANK_LARGE_SPEC=$spec: $spec_dir/model.safetensors" >&2 # model.safetensors, the Qwen3.5-9B MTP head ships sharded behind
# an index. Mirrors the serve script's gate (2026-10-01: the
# single-file check rejected the deployed mtp arm).
if [[ -z "$spec_dir" || ! -f "$spec_dir/config.json" ]] ||
{ [[ ! -f "$spec_dir/model.safetensors" ]] &&
[[ ! -f "$spec_dir/model.safetensors.index.json" ]]; }; then
echo "ERROR: spec draft absent or partial for FRANK_LARGE_SPEC=$spec: $spec_dir" >&2
echo "frank-large: re-run scripts/download-frank-large-dflash.sh (or the Qwen3.5-9B fetch for mtp)" >&2 echo "frank-large: re-run scripts/download-frank-large-dflash.sh (or the Qwen3.5-9B fetch for mtp)" >&2
return 1 return 1
fi fi
+3
View File
@@ -191,6 +191,9 @@ FETCH_MTPSRC="$REPO_ROOT/scripts/download-frank-large-qwen35.sh"
grep -q 'FRANK_LARGE_IMAGE' "$REMOTE_DEPLOY" grep -q 'FRANK_LARGE_IMAGE' "$REMOTE_DEPLOY"
grep -q "podman images --format '{{.RepoDigests}}'" "$REMOTE_DEPLOY" grep -q "podman images --format '{{.RepoDigests}}'" "$REMOTE_DEPLOY"
grep -q 'FRANK_LARGE_MODEL_SHARDS' "$REMOTE_DEPLOY" grep -q 'FRANK_LARGE_MODEL_SHARDS' "$REMOTE_DEPLOY"
# The deployer's draft gate must accept the SHARDED MTP layout too —
# the 2026-10-01 first deploy died on exactly this single-file check.
grep -q 'spec_dir/model.safetensors.index.json' "$REMOTE_DEPLOY"
grep -q 'FRANK_LARGE_SPEC=' "$REMOTE_DEPLOY" grep -q 'FRANK_LARGE_SPEC=' "$REMOTE_DEPLOY"
grep -q 'wait_port_free 7770' "$REMOTE_DEPLOY" grep -q 'wait_port_free 7770' "$REMOTE_DEPLOY"
grep -q 'MainPID --value frank-large.service' "$REMOTE_DEPLOY" grep -q 'MainPID --value frank-large.service' "$REMOTE_DEPLOY"