GCWing / GCWing/OpenBitFun

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

Đang mở
#2,358 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Rust
Star
2.3k
Fork
231
Merge trung bình
2 giờ 49 phút
Pull request đã merge (30 ngày)
589

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách đọc phần chuyển đổi hình ảnh đến từ WeChat trong src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs, quanh các dòng 220-255, sau đó theo dõi cách kết xuất đa phương thức chỉ có văn bản xử lý tệp đính kèm trong src/crates/assembly/core/src/agentic/execution/execution_engine.rs, quanh các dòng 1908-1944. Tái hiện luồng Claw chỉ có văn bản với một JPEG của WeChat và xác minh rằng hình ảnh có thể được kiểm tra mà không có đường dẫn tương đối với workspace bị thiếu.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust
Lĩnh vực
ai, backend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
52/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.