makecindy / makecindy/cindy

bug: Art 插件生成的视频在 Telegram 投递时丢失,xdt_video_urls 未转成可发送附件

Open
#2,801 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

## 问题描述 / What happened

在 Telegram 渠道调用 Art 插件生成视频后,插件侧生成成功,但视频没有送达 Telegram。最终回复会出现附件投递失败提示:

```text
Attachment delivery incomplete: 1 item could not be sent.
```

同一条链路里,图片仍可通过 xdt_image_urls 正常投递;视频返回的 xdt_video_urls 则没有变成 Telegram 可发送的附件。Art 插件的输出 hint 会声称媒体已自动送达桌面/IM,但实际视频未送达。

把同一个生成视频另行写入当前工作目录,并在最终回复中显式使用 `[paris.mp4](xdt-file:///绝对路径)` 后,Telegram 可以收到文件。这说明视频文件本身和 Telegram 文件发送能力可用,问题集中在 Art 插件结果到 IM 附件的自动交付链路。

## 环境 / Environment

- Cindy 版本或 commit / version or commit: 未知
- 渠道 / channel: Telegram
- 插件 / plugin: Art
- 发现日期 / observed date: 2026-08-16

## 复现步骤 / Steps to reproduce

1. 在 Telegram 会话中要求 Cindy 使用 Art 插件生成视频。
2. 等待 Art 插件成功产出视频。
3. 查看 Telegram 最终回复和附件。
4. 视频未送达,并出现 `Attachment delivery incomplete: 1 item could not be sent.`。
5. 将生成的同一视频写入会话工作目录,再通过 `xdt-file:///绝对路径` 显式引用。
6. Telegram 可以收到该视频文件。

## 实际行为 / Actual behavior

- Art 已成功生成视频。
- 插件 hint 暗示媒体会自动投递到 IM。
- Telegram 没有收到视频;xdt_video_urls 没有形成有效附件。
- 系统给出附件投递不完整提示。

## 期望行为 / Expected behavior

- host 应消费 Art 返回的 xdt_video_urls,并将视频转换为 Telegram 可发送的视频或文件附件。
- 自动投递成功前,不应向模型提供“已自动送达 IM”的错误 hint。
- 若自动投递失败,应保留可重试的媒体引用,并明确报告失败原因,不能直接丢弃视频结果。

## 初步定位 / Suspected boundary

这是基于现象的初步判断,尚未做代码验证:图片的 xdt_image_urls 能穿过交付链,而视频的 xdt_video_urls 可能在插件结果 hook / IM 附件投影阶段被过滤或未消费。手工 xdt-file 路径可成功,说明 Telegram 发送端不是整体不可用。

## 影响 / Impact

Telegram 用户通过 Art 生成视频后无法拿到产物;插件显示成功但交付失败,且错误 hint 会让 agent 误以为视频已经送达。

Contributor guide

Open the contributing guide

Research direction

Start by tracing the Art plugin result hook and the IM attachment projection for xdt_image_urls and xdt_video_urls, then compare the Telegram delivery path with explicit xdt-file references. Done means generated videos become Telegram-sendable attachments, failed delivery preserves a retryable media reference and reports the reason, and the success hint is not emitted prematurely.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.