makecindy / makecindy/cindy

bug: 伙伴对话界面,Cindy Art 生成图片在 Android/iOS 会话不渲染

Open
#4,476 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

Cindy Art 生成图片在 Android/iOS 会话不渲染:xdt_media_produced 未进入移动端媒体解析
桌面端可见生成结果,但 Android 与 iOS 打开同一任务时,仅显示助手的"已生成"文字确认,不出现图片附件或图片卡。

根因判断
主因(高置信度):跨端媒体结果契约不一致
桌面插件网关在插件未明确返回 xdt_image_urls 时,会把主机账本中的生成媒体注入为 xdt_media_produced。这条兜底为桌面/IM 送达设计,但移动端共享解析器只识别 xdt_image_url(s)、视频和音频字段,完全忽略 xdt_media_produced。

因此 NormalizedRemoteMessage.media 为空,ToolMediaBlock 不会渲染。

网关生成 xdt_media_produced:mcpServer.ts、mcpServer.ts
网关工具名 mcp__cindy__ghost_call:mcpServer.ts
共享解析器仅提取 xdt_image_url(s):payloadSummary.ts
移动端仅渲染已解析 tool.media:messageNormalize.ts、MessageRenderer.tsx
次要风险:Cindy Art 未覆盖 tool result echo 丢失时的回收
桌面持久化层的孤儿媒体结果回收仅允许旧 mcp__lizi_art__ / mcp__lizi_mivo__ 工具名;当前 mcp__cindy__ghost_call 不会进入该兜底。

若流式 tool_result 回声丢失,移动端连可解析的持久化工具结果也拿不到。

旧工具名白名单:messagePersistBroadcaster.ts
当前工具结果持久化及媒体引用提交:messagePersistBroadcaster.ts

### 环境 / Environment

- Cindy 版本或 commit / version or commit: 0.1.82
- 平台与版本 / platform & OS version: Android 或 iOS

### 复现步骤 / Steps to reproduce

1. 配对桌面端与 Android 或 iOS。
2. 在桌面任务中调用 Cindy Art 生成图片,例如"猫吃鱼"。
3. 确认桌面端已显示生成结果。
4. 在手机打开同一任务,等待同步
5. 观察助手文字存在,但无图片卡、无附件预览。

### 日志与截图 / Logs & screenshots

Image

Contributor guide

Open the contributing guide

Research direction

Trace xdt_media_produced from mcpServer.ts through payloadSummary.ts, then inspect messageNormalize.ts and MessageRenderer.tsx to see why mobile media remains empty. Review messagePersistBroadcaster.ts for the listed tool-name fallback and persistence path. Reproduce the Cindy Art task on Android or iOS and verify the generated image renders and remains available when the tool-result echo is missing.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native, typescript
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.