Files
NASOpenClawRunTime/memory/2026-04-24.md
2026-04-25 01:38:03 +00:00

2.5 KiB

Memory · 2026-04-24

WeChat Image Sending — Root Cause Findings

1. Gateway sendMedia is QQBot-only (Platform Bug)

  • Gateway imports sendMedia from outbound-CkazH4Wl.js which is QQBot-exclusive
  • WeChat plugin's sendMedia in channel.ts:205 is never called by the gateway
  • All outbound messages log mediaUrl=none — images are NOT sent via this path
  • Workaround: Using MEDIA:./assets/<filename> directive in reply works — Tyrone received images this way
  • The image_generate tool output IS sent correctly via MEDIA: path

2. Browserless Screenshot Blank Issue (mp.weixin.qq.com)

  • Browserless returns 2685-byte solid-color PNG for mp.weixin.qq.com (anti-bot protection)
  • GitHub and taobao.com/login also return blank/placeholder
  • Normal pages (e.g., baidu.com) CAN be screenshot successfully (48071 bytes real PNG)
  • The browser tool has intermittent "timed out" / "No connected browser-capable nodes" failures
  • Browserless CDP is reachable at ws://browserless:3000

3. QR Code Generation — AI refuses scannable QR codes

  • image_generate tool cannot produce scannable QR codes (MiniMax has anti-fraud training that blocks QR code generation)
  • api.qrserver.com returns wrong content ("Happy Halloween!") for all URLs
  • My hand-written QR encoder (gen-qr-png.cjs) produces technically valid QR but the resulting PNG from ImageMagick conversion has precision loss and won't scan
  • Solution options: (a) install qrencode on群晖, (b) use browserless to screenshot a real login QR from a site that works (taobao login worked), (c) Tyrone logs in manually at mp.weixin.qq.com

4. WeChat QR Login URL

  • URL: https://mp.weixin.qq.com/cgi-bin/scanloginqrcode?action=getqrcode&random=<epoch>&login_appid= — session-based, expires
  • Cannot be fetched via curl (requires browser session cookies)
  • Must use browser with WeChat logged-in session to access

5. Valid Reference Images

  • wechat-open-qr.png (105378 bytes) — valid QR from earlier session, stored at workspace/assets/screenshot-test/
  • Test circle PNG sent successfully — confirmed WeChat CAN receive images via MEDIA: directive

6. Successful Screenshot Targets

  • baidu.com → 48071 bytes real PNG via browserless
  • taobao.com/login → real login QR code screenshot works

Key Decisions This Session

  • Using MEDIA:./assets/<filename> for image delivery (not gateway sendMedia)
  • WeChat channel sendText works fine; only images have routing issues
  • Browserless HTTP API (POST /screenshot) more reliable than browser tool for some targets