dsh-zhanshi:在对话回合末尾内联展示本轮图片与视频

前言

在 DeepSeek Harness(DSH)桌面端里,模型或工具可能在本轮成功保存图片、视频,但默认对话区未必在回合末尾直接给出可点的预览。官方交付卡会承担部分同路径文件的展示;其余「本轮产物」往往要你自己记路径、用文件接口或外部程序打开。对日常写代码、跑生成类工具的智能体开发者来说,少一层「回合内可见的媒体摘要」会拖慢确认节奏。

下面介绍的 zhanshi(仓库 yueyexiayu/dsh-zhanshi)是社区维护的客户端类 DSH 桌面插件:把本轮成功保存或明确交付、且没有官方同路径交付卡的图片和视频,显示在回合末尾;不写进模型上下文,也不负责生成媒体。读取旧图片(例如 read_image 只看历史文件)不算本轮产物,不会进预览区。

这是什么

  • 名称:zhanshi(npm 包名 zhanshi,当前版本 0.1.3,见仓库 package.json)
  • 维护者:yueyexiayu
  • 分类:客户端(Host + Client 协作,不修改官方 DSH 源码,不替换官方对话渲染器)
  • 目录页:skillhub.cn/plugins/yueyexiayu/dsh-zhanshi
  • 一句话:DSH desktop plugin — show this-turn images and videos inline in the conversation.

预览以 id: zhanshi 注册到 conversation.chat.turnTail 列表,与官方交付卡同层,不会折进工具调用列表。没有媒体时不渲染。

核心功能

展示位置与交互

  • 图片、视频出现在当前回合尾部,与官方交付卡同一层级。
  • 图片可点击打开;视频使用原生播放控件。
  • 图片、视频加载失败时仍保留可见文件卡,提供重试和打开操作;视频使用 preload="metadata",不主动预加载全部内容。

收集规则(什么会进预览)

  1. 只收集本轮明确成功且无结构化错误的 present、write、edit、以及插件支持的媒体生成/截图工具结果。
  2. read_image 只表示查看旧文件,不进入产物区。
  3. 若官方 deliverables.presented 已承担同路径文件卡,本插件会按 cwd 规范化并去重;只抑制当前 closing seq 之前的官方卡,不抑制尚未 materialize 的 present、独立生成图、其他目录同名媒体。官方 produced 仍可作为真实本轮产物来源。
  4. 支持 shengcheng_result 的结构化路径(优先保留空格、引号及 Unicode);结构化记录损坏时不以模糊文本兜底伪装成功;兼容旧的独立 saved … 行。
  5. bash 非零退出、超时、终止、取消或仍在后台运行时不当作完成;不把复合命令最后出现的旧文件当作目标,不解析会话日志里的示例。
  6. 相对路径按会话 cwd 解析后规范化、去重;不同目录同名文件仍分别展示;同路径保留最新序号。
  7. 每回合最多显示 16 项:优先明确交付的成品,再显示较新的其他媒体;超过上限时显示剩余数量。此限制只影响本插件预览,不删除官方交付记录。
  8. 忽略 node_modules、.git、父目录跳转、glob 和不支持的扩展名(产品过滤规则,不替代官方文件权限控制)。

文件读取与视频预览边界

  • 图片:通过官方相对 URL /api/file 读取(兼容桌面 dsh-app://);认证由 DSH connection 处理,插件不绕开认证。
  • 视频:通过 /api/zhanshi/file;路径解析与有界读取经 composed ctx.fs 的 resolve、processPath、stat、readByteRange 完成,禁止用本机 Node fs 或整文件快照绕过 provider。
  • 视频 GET/Range 按 demand 读取最多 64 KiB 窗口;64 MiB 是预览产品上限(不是生成上限)。shengcheng 可保存至 256 MiB 视频;超过预览上限时 HEAD/GET 返回 413,并带 X-Zhanshi-Preview: open-file / X-Zhanshi-File-Size;客户端用 HEAD 区分大文件,显示实际 MiB 与「打开文件」,不提高内存上限。

Host 依赖 connection、fs;Client 依赖 slots、uiConversation。

安装与启用

社区插件按 DSH「一切皆插件」的方式手动接入;不要凭仓库名自行拼接未在文档中出现的 dsh plugin add 命令。README 给出的步骤如下。

  1. 将插件包放到 $DSH_HOME/plugins/zhanshi(与 README 中「包位于」描述一致;具体获取方式以 GitHub 仓库 与目录页说明为准)。
  2. 编辑 $DSH_HOME/profiles/desktop/cordis.patch.yml,在 insert 中加入:
- id: zhanshi
  name: ../../plugins/zhanshi/lib/index.js
  1. 完全退出 DeepSeek Harness(macOS:⌘Q)再打开;仅刷新页面不会重新加载 Host。重启后历史回合可从事件重新构建预览。
  2. 卸载:去掉上述 insert 项,再完全退出并重开。

安装前请自行查看仓库源码与许可证,并理解插件在当前 DSH 进程权限下运行。

典型用法

本插件不负责生成图片或视频,也没有单独的 CLI。典型流程是:

  1. 在已启用 zhanshi 的 DSH 桌面会话中,让智能体通过 write/edit/present 或 README 列出的受支持媒体工具,在本轮成功保存图片或视频。
  2. 回合结束后,在对话区回合末尾查看 zhanshi 预览区:图片可点开展开,视频用控件播放。
  3. 若官方已在同路径展示交付卡,插件会去重,避免重复卡片;独立路径或独立生成图仍会显示。
  4. 超大视频(超过 64 MiB 预览上限但可能已保存至 256 MiB)会提示通过「打开文件」等方式处理,而非在页内整段预加载。

README 注明:待运行态验收 — 单元测试或独立浏览器夹具不等于桌面重启后的真实验收;完全退出并重开后,仍需在实际会话中确认新插件已加载,以及图片、视频展示是否符合预期。

适用场景与注意

适合谁

  • 经常在 DSH 桌面里跑图像/视频生成或截图工具,希望在同一回合末尾快速核对产物、少记路径的开发者。
  • 需要与官方交付卡并存、且希望「非官方卡覆盖的同路径重复展示」被去重的场景。

注意事项

  • 插件只展示它判定为本轮成功产出的媒体;误报/漏报与工具输出格式、bash 完成态、结构化字段是否完整有关,详见 README「收集和展示规则」。
  • 视频预览有大小与分窗读取策略;大文件依赖 Host 的 openFile 等能力,缺少时仍保留路径与普通文件链接。
  • 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,安装与审计责任在用户侧。

结尾

zhanshi 把「本轮成功保存或交付的图片、视频」收到回合末尾的内联预览里,与官方交付卡同层,且不写入模型上下文。若你在桌面 DSH 里频繁产出媒体文件,可按 README patch 安装并在完全重启后于真实会话中验证。

  • 目录页:https://www.skillhub.cn/plugins/yueyexiayu/dsh-zhanshi
  • GitHub:https://github.com/yueyexiayu/dsh-zhanshi
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜