[Bug] WeChat inbound images are downloaded but inaccessible to Claw analyze_image
- Vorherrschende Sprache
- Rust
- Sterne
- 2.2k
- Forks
- 229
- Ø Merge
- 2 Std. 46 Min.
- Gemergte PRs (30 T.)
- 577
Beschreibung
## Summary
When using BitFun's built-in WeChat gateway with Claw, an inbound image is downloaded successfully but cannot be inspected by a text-only primary model through the `analyze_image` tool.
The image is present as an inline data URL in the turn payload, but no local attachment path is created. Claw receives only the `remote_img_` identifier and the tool treats it as a workspace-relative path.
## Environment
- BitFun: 0.2.17 (macOS Apple Silicon)
- Channel: built-in WeChat gateway / Claw
- Primary model: GLM-5.3 (text-only; image inputs disabled)
- Reproduced: 2026-08-18
## Steps to reproduce
1. Configure a Claw session with a text-only primary model.
2. Send a JPEG image to the Claw bot through WeChat.
3. Let Claw try to inspect or describe the image.
## Actual behavior
The image is received and displayed in the BitFun transcript, but Claw calls:
`analyze_image(path="remote_img_")`
and fails with:
`unable to locate image at /remote_img_: No such file or directory`
The gateway logs show a successful CDN request immediately before the turn starts. The turn payload contains a valid `data:image/jpeg;base64,...` value, so the media download itself is not the failing step.
## Expected behavior
One of these should happen:
- Save the downloaded/decoded image in a session-scoped temporary directory and expose its real `image_path`; or
- Make `analyze_image` accept the attachment ID / inline data URL directly; or
- Route the attachment directly to a configured vision-capable primary model when available.
The current prompt says to use `analyze_image` when a path is available, but the WeChat adapter only supplies a data URL.
## Upstream references
The current implementation still follows this path in 0.2.18:
- [WeChat inbound image conversion](https://github.com/GCWing/BitFun/blob/v0.2.18/src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs#L220-L255) creates only a data URL.
- [Text-only multimodal rendering](https://github.com/GCWing/BitFun/blob/v0.2.18/src/crates/assembly/core/src/agentic/execution/execution_engine.rs#L1908-L1944) exposes only an image ID when no path exists.
I have not tested outbound file delivery in this report; this issue is specifically about inbound image inspection from WeChat.
Beitragsleitfaden
Rechercherichtung
Start by reading the WeChat inbound image conversion in src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs around lines 220-255, then trace how text-only multimodal rendering handles the attachment in src/crates/assembly/core/src/agentic/execution/execution_engine.rs around lines 1908-1944. Reproduce the text-only Claw flow with a WeChat JPEG and verify that the image is inspectable without a missing workspace-relative path.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- ai, backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100