Files
ctbjrj/.zcode/plans/plan-sess_2ed54f95-ab0c-4078-a4d3-1c950002662f.md
T

2.2 KiB

拖入文件回归 ZCode 原生机制:删光我的桥接 + 修前端源码漏读二进制内容

先认错

拖放应该用 ZCode 原生的附件流程(拖入→附件胶囊→原生上传→随消息发送),我擅自拦截并自动发路径消息,是越权,全部删除。

改动一:DockWindow10.cs 回到干净状态

删除我加的全部拖放代码:拖放拦截JS 注入、WebMessageReceived 处理器(AI面板_收到网页消息)、处理拖入文件、发送消息到聊天。保留原有功能(浅色主题注入、⚡按钮、引导页),按钮此前已删。

改动二:修 ZCode 前端源码(根因修复,原生通道)

根因(已从源码实证):packages/ui/src/lib/chatAttachments.ts 收集附件时——图片/PDF/视频分支都会 readAttachmentBase64(file) 读内容走原生上传(引擎侧 attachmentBeginV4/ChunkV4/CommitV4 通道实测可用);普通文件(xlsx/dwg/zip…)的兜底分支只读文本(isTextLike 才 textContent),非文本直接返回"仅元信息"→"附件缺少可读取内容"。 修法:兜底分支补上与图片分支同款的 readAttachmentBase64——非文本二进制也读成 dataBase64,走 ZCode 原生上传协议。一处改动,原生 UI/胶囊/上传进度/发送全流程不变。 (原路径 localPath 分支、文本 textContent 分支均不动——桌面端行为不受影响)

构建与部署

  1. 改 zcode-build\ZCode\packages\ui\src\lib\chatAttachments.ts(约 4 行)。
  2. pnpm build 重建(曾完整跑通过)→ 把新 packages\web\dist 覆盖到 ai助手\zcode\web\(项目+安装目录 C:\成套报价软件 两份)。
  3. 主程序重编(DockWindow10 回退版)→ 同步 bin+安装目录 exe → 重启软件。

验证

  • 无头 playwright:拖 xlsx/png 到聊天框 → 原生附件胶囊出现 → 引擎日志 attachmentBeginV4/ChunkV4/CommitV4 OK(不再出现"缺少可读取内容");CSV 文本回归原生通道不受影响。
  • 你实测拖一个 Excel:应看到和拖文本一样的附件胶囊+上传完成,随消息一起发给 AI。

记录

代码索引追加;构建脚本不动;打包等你说打包再做。