Files
cc-web/.trellis/tasks/10-17-display-image-render-failure/prd.md

1.4 KiB
Raw Blame History

修复 ccweb_display_image 图片展示失败

需求

用户截图中会话 0bb322b1-e9f8-47e7-9af1-970411bfec5a 连续八张图片均显示“图片渲染失败”。定位并修复现有显示链路,使已保存图片在刷新后正常显示,并给后续调用提供相同行为。

已确认原因

真实存档 tool.result 是 MCP CallToolResult 的 JSON:{content:[{type:'text',text:'业务 JSON'}],structuredContent:{ok:true,image,attachment},_meta:null}。当前前端只解析一层 JSON 后直接检查 payload.ok,因此把成功的 MCP 包装结果识别为失败。服务端业务结果确实 ready。

实现边界

  • 在前端正确解析直接业务结果与 MCP structuredContent / content 文本形式。
  • 保留明确的业务错误消息、等待状态和异常格式兜底。
  • 使用实际历史结果形状补充行为回归,包括已有图片附件和直链图片。
  • 不修改用户历史数据,不改协议,不重新生成图片。
  • 保留工作区中已经存在的文件浏览器图片画廊改动;改动前核对 git diff。

验收

  • 截图中八个已有成功结果可以解析得到正确 attachment。
  • 渲染组件进入图片预览分支,不再显示误报失败。
  • 错误响应与不合法结果不被误报成功。
  • 必要测试通过;运行服务能提供新静态文件,若需要重启必须先查其他运行对话。