dsh-seesion-copy-enhance:在 DSH 里复制整条消息(文字与附件)

前言

在 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 秒):

  1. 在任意会话中找到带图片的用户消息,点复制 → toast 应显示「已复制文字 + N 个附件,可粘贴到任意会话」。
  2. 打开另一会话(或同一会话)的 composer,按 Ctrl+V → 应出现原文与 N 个附件卡片。
  3. 按 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 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜