GCWing / GCWing/OpenBitFun

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

Abierto
#2,358 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Rust
Estrellas
2.3k
Forks
231
Merge medio
2 h 46 min
PR fusionados (30 d)
577

Descripción

## 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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
ai, backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
52/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.