From 87670dd3a668c0fed317e47337b8e57c17b92697 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Wed, 15 Jul 2026 15:58:52 +0200 Subject: [PATCH] self-smoke Check 5: Bild-Weiche v2 taeglich aktiv durchspielen Der Pfad (Bild an coder -> Vision beschreibt -> Coder antwortet) brach am 15.07. zweimal still: erst als nie verdrahteter Patch in der Hermes-Quelle, dann am gepoolten Keep-Alive-Socket nach Modell-Swap (:9010). 256x256-Rot als Testbild - Winzbilder liefern VL-Halluzinationen (Kapuzinerkresse). Nebeneffekt: waermt coder+vision morgens vor. Vorschlag der P2-Session. Co-Authored-By: Claude Fable 5 --- deploy/self-smoke.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/deploy/self-smoke.sh b/deploy/self-smoke.sh index 33e1665..e6edfea 100644 --- a/deploy/self-smoke.sh +++ b/deploy/self-smoke.sh @@ -102,6 +102,33 @@ else say "SKIP · Repo-Wächter (git fetch fehlgeschlagen)" fi +# ── 5) Bild-Weiche v2: Bild an coder → Vision beschreibt, Coder antwortet ────── +# Dieser Pfad brach am 15.07. ZWEIMAL still (toter Hermes-Patch; gepoolter Socket +# nach Modell-Swap) — deshalb täglich aktiv durchspielen. Nebeneffekt: wärmt +# coder+vision am Morgen vor. 256x256-Testbild (Winzbilder = VL-Halluzinationen). +BILD_JSON=$(python3 - <<'PYIN' +import struct, zlib, base64, json +w=h=256 +raw=b"".join(b"\x00"+b"\xff\x00\x00"*w for _ in range(h)) +def chunk(t,d): + c=t+d; return struct.pack(">I",len(d))+c+struct.pack(">I",zlib.crc32(c)) +png=b"\x89PNG\r\n\x1a\n"+chunk(b"IHDR",struct.pack(">IIBBBBB",w,h,8,2,0,0,0))+chunk(b"IDAT",zlib.compress(raw))+chunk(b"IEND",b"") +url="data:image/png;base64,"+base64.b64encode(png).decode() +print(json.dumps({"model":"coder","stream":False,"max_tokens":40,"messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":url}},{"type":"text","text":"Welche Farbe hat das angehaengte Bild? Antworte nur mit der Farbe."}]}]})) +PYIN +) +BW_HDR=$(mktemp); BW_OUT=$(mktemp) +if curl -sf -m 420 -D "$BW_HDR" -X POST "$MC_URL/v1/chat/completions" \ + -H "Content-Type: application/json" -d "$BILD_JSON" -o "$BW_OUT" 2>/dev/null \ + && grep -qi "bleibt beim Coder" "$BW_HDR" \ + && grep -qi "rot" "$BW_OUT"; then + say "PASS · Bild-Weiche v2 (Bild an coder → beschrieben → 'rot')" +else + say "FAIL · Bild-Weiche v2: $(grep -i 'x-mc-route-reason' "$BW_HDR" 2>/dev/null | head -1) Antwort: $(head -c 80 "$BW_OUT" 2>/dev/null)" + FAILED+=("Bild-Weiche v2 (Bild an coder — Umleitung statt Beschreibung oder falsche Antwort)") +fi +rm -f "$BW_HDR" "$BW_OUT" + # ── Meldung nur bei Rot ────────────────────────────────────────────────────── if [ "${#FAILED[@]}" -eq 0 ]; then say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."