Root causes of the screenshot 404 incident: 1. RACE: client uploads image AND sends message concurrently; bot received the message before the upload finished writing, so its GET hit a 404 error page (<100B treated as failure). FIX: _download_image now retries 3x with 2s backoff. 2. Zhiwei mentioned tesseract/小果 because the failure text never told her the pipeline IS SenseNova. FIX: failure messages now name SenseNova explicitly and ask for resend. 3. log_xmpp never worked for the bot: sys.path used relative '../..' from a symlinked __file__ which resolved to '/' instead of MoFin root. This is why the '最近对话' panel never had bot chat data (only cron script entries). FIX: absolute path per red line #7. Verified: test message now lands in xmpp_messages.jsonl. 4. My PowerShell -replace corrupted the file encoding (UnicodeDecodeError crash loop on restart). Restored from git HEAD and re-applied edits with the edit tool. Lesson: never use PowerShell string replace on UTF-8 source files with Chinese content. 5. functional_health: new sense_ocr module (OCR config presence + SenseNova API TCP reachability), no token cost.
8 lines
479 B
Python
8 lines
479 B
Python
import json, urllib.request
|
|
payload = json.dumps({"to": "hmo@yoin.fun", "body": "[系统] 消息日志链路自检(请忽略此条)", "type": "chat"}).encode()
|
|
req = urllib.request.Request("http://127.0.0.1:5805/", data=payload, headers={"Content-Type": "application/json"})
|
|
print(urllib.request.urlopen(req, timeout=5).read().decode())
|
|
import time
|
|
time.sleep(2)
|
|
last = open('/home/hmo/MoFin/gateway/logs/xmpp_messages.jsonl').readlines()[-1]
|
|
print('jsonl last:', last[:200]) |