GCWing / GCWing/OpenBitFun

[Bug] WeChat inbound images are downloaded but inaccessible to Claw analyze_image

Offen
#2,358 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.