前言¶
DeepSeek Harness Web 插件生态中,conversation.chat.turnTail 是一个 chain slot——第一个 accept 的渲染会跳过后续渲染。dsh-better-sidebar 插件常通过 -1 的优先级抢先接管该链,导致官方交付卡片(包含 chips 与交付卡片)的整条渲染被跳过。本插件通过 -2 的优先级插入链路,仅在存在 present 声明的回合接手渲染,绕开了链被抢占导致的卡片消失问题。
它是什么¶
dsh-delivery-cards 是 vclike 维护的一个 DSH Web 插件。它提供独立的交付卡片行,具备 11 类文件类型图标、亮暗双主题支持,且完全零依赖零构建。
安装与启用¶
插件未发布至 npm,需从 GitHub 源码安装。
- 安装插件:
dsh plugin --profile web add github:vclike/dsh-delivery-cards
- 本地开发:
git clone https://github.com/vclike/dsh-delivery-cards.git
dsh plugin --profile web add link:D:/path/to/dsh-delivery-cards
- 登记包名:
在<DSH_HOME>/profiles/web/package.json的dsh.profile.bundles数组中添加"dsh-delivery-cards"。若不登记,浏览器半边不会被组装进启动图。 - 重启服务:
修改前端 bundle 后必须重启dsh web。
注意:不要在
dsh.profile.bundles的cordis.patch.yml里手动写insert:行。宿主行由插件包内的cordis.patch.yml自动插入,手动重复会导致冲突。
核心功能¶
- 优先级控制:以 -2 优先级参与
turnTail链渲染,只在有present声明的回合接手;无present时回退,行为与未装插件一致。 - v2.0 启发式兜底:客户端新增兜底层,当
presented为空时,按路径、格式、大小启发式过滤produced。这使得任何模型(Kimi、Claude、GPT 等)即使未调用present也能渲染交付卡片。 - 卡片交互:
- 点卡片空白处(或 Enter/Space)侧边栏预览。
- 两个常驻按钮「打开」(默认程序)和「定位」(文件资源管理器),无折叠二级菜单。
- 文件图标:支持 11 类文件类型图标(PDF、DOC、表格、PPT、MD、HTML、图片、视频、音频、压缩包、代码)。未收录的扩展名回落为文字徽标。
- 主题适配:配色全部走主题 token,支持亮暗双主题切换。
技术细节与修复¶
- 链路抢夺修复:
dsh-better-sidebar抢占了官方交付卡片的渲染入口,导致卡片消失。本插件通过更低优先级抢占,优先处理有present的回合。 - Windows 窗口可见性修复:上游
@deepseek-ai/dsh-native-command的revealNativePath使用了windowsHide: true,导致 Windows 资源管理器窗口创建为不可见状态。本插件在宿主半边重写了该方法,将windowsHide改为false,确保定位按钮能正常打开可见窗口。
环境要求¶
- DSH:
^0.1.5-rc.1 - Node:
>=20 - 平台:Windows 平台下的「定位」功能修复了窗口不可见问题;非 win32 平台回退上游实现。
结语¶
dsh-delivery-cards 解决了 DSH Web 生态中交付卡片在多插件环境下不稳定显示的问题,并通过 v2.0 的启发式兜底和 Windows 窗口修复,提升了跨模型的兼容性和易用性。
- GitHub: https://github.com/vclike/dsh-delivery-cards