# 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/` 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=&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/` 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