前言¶
在 DeepSeek Harness(DSH)里整理会话时,常见操作是把某条用户消息复制到另一个会话的输入框,或贴到 Word、Notion 等富文本环境。DSH 自带的复制按钮只写入纯文本:带截图、文件或视频的消息在别处往往只剩文字,附件无法一并带走。下面介绍社区插件 dsh-seesion-copy-enhance(维护者 JMILI,分类:客户端),它接管消息上的复制行为,把完整内容与附件写入剪贴板,粘贴时可恢复为输入框里的真实草稿附件。
这是什么¶
dsh-seesion-copy-enhance 是 DSH 的 Web 客户端插件(包名拼写为 seesion,与仓库名一致)。当前版本 0.2.0,MIT 许可证,源码在 GitHub。插件在 Host 侧读取会话日志与附件存储,在客户端侧拦截复制与粘贴,与 DSH 内置「仅 text」的复制路径形成互补。
核心功能¶
与内置复制对比,README 中归纳的能力如下(均以资料为准):
| 操作 | 内置 DSH | 启用插件后 |
|---|---|---|
| 复制带图消息 | 仅 text | text + 全部图片 |
| 复制带文件/视频消息 | 仅 text | text + 全部附件 |
| 粘贴到其它会话 | 纯文本 | 文本 + 附件卡片,可发送 |
| 粘贴到同一会话 | 纯文本 | 文本 + 附件卡片 |
| 粘贴到 Word / Notion / 邮件等 | 纯文本 | 文本 + 内联图片 |
| 页面刷新后再粘贴 | 纯文本 | 经 Host 桥接仍可恢复附件 |
剪贴板同时提供 text/plain(终端粘贴仍可用)和 text/html(含隐藏媒体 token 与内联 data: 图)。粘贴时客户端解析 token,向 Host 请求完整 bundle,将条目还原为真实 File,经与会话拖放上传相同的草稿附件通道交给 composer;附件会正常上传与发送,而非假卡片。
若 Host 能力不完整,插件在运行时自检 GET /dsh-seesion-copy-enhance/health 中的 capabilities;缺失项不会抛错,会降级为仅复制文字并在 toast 中说明,不破坏内置复制/粘贴。
版本与兼容性¶
package.json 声明 engines.dsh 为 >=0.2.0 <0.3.0。README 说明:0.2.1-rc.5 已在维护者环境端到端验证;0.1.x 不支持(无 conversation.composer.dock 槽位与 createDrafts);>=0.3.0 未声明,扩范围前需重新验证。需要 DSH Web UI 0.2.x(桌面端 UI 相同),剪贴板 API 需安全上下文(http://127.0.0.1、http://localhost 均可)。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议阅读源码与 MIT 许可证。社区目录页:skillhub.cn/plugins/JMILI/dsh-seesion-copy-enhance(独立站点,与 DeepSeek / 幻方无官方从属关系)。
1. 插件市场(推荐)
在 DSH 中打开 Plugins → Discover,搜索 dsh-seesion-copy-enhance,安装后按提示重启或刷新。
2. 命令行
将 desktop 换成你实际使用的 profile(桌面应用多为 desktop,Web 安装常为 web):
dsh plugin --profile desktop add dsh-seesion-copy-enhance
3. 本地打包安装
先打包再安装 .tgz(UNC 路径上的目录安装可能失败,打包更可靠):
pnpm pack --pack-destination C:\Users\<you>\.dsh\staging
在 Plugins → install bundle 中选择例如 file:C:/Users/<you>/.dsh/staging/dsh-seesion-copy-enhance-0.2.0.tgz。
4. 从源码目录安装
README 给出 clone 后添加本地路径的方式;若你自行改 lib/index.js(Host 半部)需重装或重启应用,lib/client.js 随页面重载。
可选配置¶
在 cordis.patch.yml 的插件条目下均可选设置:
- insert:
- id: seesion-copy-enhance
name: 'dsh-seesion-copy-enhance'
config:
maxAttachmentBytes: 25165824 # 单附件超过则跳过
maxBundleBytes: 25165824 # 整条消息体积上限
history: 32 # Host 内存中可 resolve 的 capture 条数
被跳过的附件会出现在响应 warnings 与浏览器控制台;其余内容仍会复制。
典型用法¶
README 中的手动验收步骤(约 30 秒):
- 在任意会话中找到带图片的用户消息,点复制 → toast 应显示「已复制文字 + N 个附件,可粘贴到任意会话」。
- 打开另一会话(或同一会话)的 composer,按
Ctrl+V→ 应出现原文与 N 个附件卡片。 - 按
Enter发送 → 新消息中应再次看到图片。
复制与粘贴的内部流程(Host 路由 GET /health、POST /capture、POST /resolve 等同源注册;跨域 Origin 返回 403):复制时 client 调用 capture 获取 text 与 base64 媒体并写入剪贴板;粘贴时 client 解析 HTML 中的 token,必要时 resolve,再 createDrafts() → addAttachments() → insertText()。捕获 bundle 默认保留最近 32 条于 Host 内存,插件卸载或 Host 重启后清除,不落盘;仅在点击复制时写入剪贴板,插件不读取剪贴板、不上传外网。
适用场景与注意¶
适合需要在 DSH 多会话之间搬运「带附件的用户消息」、或向富文本工具粘贴含图内容的开发者。Bridge 路由仅接受同源请求;/inspect 只返回形状信息,不导出会话正文。已知限制:只能复制消息仍持有的附件,已被 Host 回收的媒体无法恢复;默认单附件与整包各约 24 MB(与上述配置项一致)。维护者仓库星标为 0,功能描述以 README 与 verify.ps1 自检为准。
结尾¶
dsh-seesion-copy-enhance 用客户端插件补齐 DSH 消息级「整包复制/粘贴」,在 0.2.x 生态里与「一切皆插件」的做法一致。目录与详情见 SkillHub 插件页,源码与变更见 GitHub 仓库。