dsh-seesion-copy-enhance
复制一个 整个 在DeepSeek Harness中的聊天信息-文本,图像,视频和文件-并将其粘贴回 任何 会话的附件仍然存在。
DSH的内置复制按钮写入 text 只有这样,带有截图或文件的信息才能以纯文本的形式到达其他地方。这个插件接管按钮,把完整的消息放在剪贴板上,并重建附件作为真正的作曲家草稿,当你粘贴-准备发送。
- 包:
dsh-seesion-copy-enhance(拼写遵循原始要求,seesion;安装时请逐字使用) - 版本:
0.2.0 - 授权:MIT,来源 GitHub
它是做什么的
| 行动 | 股票DSH | 有了这个插件 |
|---|---|---|
| 复制带有图像的消息 | 文本只 | 文字+每一张图片 |
| 用文件/视频复制消息 | 文本只 | 文本+每个附件 |
| 粘贴到另一个会话 | 纯文本 | 文本+附件卡,准备发送 |
| 粘贴到同一会话中 | 纯文本 | 文本+附件卡 |
| 粘贴到富文本应用程序中(Word、Notion、mail) | 纯文本 | 文本+内联图像 |
| 重新加载页面后粘贴 | 纯文本 | 文本+附件(通过主机桥恢复) |
剪贴板有两种口味: text/plain (干净的文本-粘贴到终端仍然有效)
和 text/html (一个隐藏的媒体标记加上inline data: 图像)。粘贴时,客户端读取
令牌,向主机请求完整的包,将每个条目转换回真实的 File,并把它交给
会话的草稿附件通道-拖放上传使用的相同路径。附件是
真正的草稿:他们上传和发送正常。没有什么是假的卡。
支持版本
| DSH版本 | 状态 | 笔记 |
|---|---|---|
0.2.1-rc.5 | ✅验证 | 这台机器上的端到端:捕获/解析/剪贴板写入/草稿还原 |
>=0.2.0 <0.3.0 | ✅宣布 | engines.dsh 在 package.json;市场和安装人员检查它 |
其他 0.2.x 钢筋混凝土构建 | ⚠️预期 | 使用公共的0.2插槽和服务,而不是每个rc验证 |
0.1.x | ❌不支持的 | 否 conversation.composer.dock 槽位和编号 createDrafts 草案通道 |
>=0.3.0 | ❌未申报 | 在扩大范围前重新验证 |
该插件还在运行时进行自我检查: GET /dsh-seesion-copy-enhance/health 报告 version 和
capabilities (是否 readImage / readFileStream / imageHostPath / fileHostPath 存在)。如果一个
功能缺失,插件缺失 不 Throw -它降级为纯文本副本,在
烤面包,并保持原始的复制/粘贴行为不变。
安装
1. 插件市场(推荐)
开放 插件→发现 在DSH中,搜索 dsh-seesion-copy-enhance,安装,然后重新启动或
根据提示刷新。
2. 命令行
dsh plugin --profile desktop add dsh-seesion-copy-enhance
使用您的真实资料名称(desktop 在桌面应用程序上,经常 web 在web安装上)。
3. 应用内插件管理器(本地包)
先打包,然后安装 .tgz:
pnpm pack --pack-destination C:\Users\<you>\.dsh\staging
# then, in Plugins → install bundle, pick:
# file:C:/Users/<you>/.dsh/staging/dsh-seesion-copy-enhance-0.2.0.tgz
从 file: 目录 只能在普通的Windows路径上工作。生活在…上的包裹
UNC路径,如 \\wsl.localhost\... 失败与 ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND 因为规划
重写导语 \\. 包装, .tgz 使PNPM将实际文件复制到配置文件中,该配置文件是
最可靠的路线。
4. 从源
git clone https://github.com/JMILI/dsh-seesion-copy-enhance.git
dsh plugin --profile desktop add .\dsh-seesion-copy-enhance
编辑 lib/index.js (主机一半)需要重新安装或重新启动应用程序; lib/client.js (客户端)
重新加载页面。
它是如何工作的
copy ──► client: POST /dsh-seesion-copy-enhance/capture { sessionId, seq, text }
Host: reads the live session log (ctx.sessions) and the attachment
store (ctx.attachments); returns text + base64 media
client: writes { text/plain, text/html } to the clipboard
paste ──► client: sees the media token in text/html
Host: POST /resolve returns the bundle (when this page forgot it)
client: createDrafts() → addAttachments() → insertText()
- 主机一半 (
lib/index.js)上注册了四条同源路由ctx.webServer:GET /health,GET /inspect,POST /capture,POST /resolve. 一切都来自于存在 服务;不会向磁盘写入任何内容,也不会更改模式。带外文的请求Origin得到403 cross-origin才能读取会话。 - 客户端一半 (
lib/client.js)安装一个不可见的组件conversation.composer.dock来 接收电流sessionId还有作曲家的inputActions,然后监听复制和粘贴 文档捕获阶段。 - 媒体永远不会以URL的形式离开内存:剪贴板本身携带字节,因此粘贴工作跨 会话,跨窗口和重新加载后。
需求
- DSH Web UI 0.2。x(桌面应用程序使用相同的UI和工作方式相同)。
- 剪贴板api的安全上下文:
http://127.0.0.1和http://localhost都有资格。
配置
都是可选的,在插件条目中设置 cordis.patch.yml:
- insert:
- id: seesion-copy-enhance
name: 'dsh-seesion-copy-enhance'
config:
maxAttachmentBytes: 25165824 # skip a single attachment above this size
maxBundleBytes: 25165824 # ceiling for the whole message
history: 32 # how many captured messages stay resolvable in memory
被跳过的附件将出现在响应的附件中 warnings 在浏览器控制台;其余的
消息的副本仍然被复制。
在这台机器上验证(2026-11-03,DSH) 0.2.1-rc.5)
| 检查 | 结果 |
|---|---|
GET /health | 200 {"ok":true,"version":"0.2.0",...} |
GET /inspect | 200,形状为2个会话和10 / 267用户消息 |
POST /capture 在真正的8张截图信息上 | 8个png,字节1354080 / 2025508 / 1203138 / 216053 / 38122 / 319601 / 52797 / 240416, 每一个都匹配它的声明 bytes, warnings: [] |
| 有效载荷的文本 | 859个字符,与消息正文相同 |
POST /resolve (令牌) | 文本和所有8个附件字节相同 |
POST /resolve (文本回退) | 同样的文字,8个附件 |
跨站点请求(伪造) Origin) | 403 {"ok":false,"error":"cross-origin"} |
| 客户端注册 | conversation.composer.dock 主人 dsh-seesion-copy-enhance,订单60; active: true |
重新运行检查 powershell -File verify.ps1 (pwsh -File verify.ps1 PowerShell 7;添加
-Capture 用于媒体往返)。该脚本是纯ASCII格式,因此Windows PowerShell 5.1可以运行它
直接。
手动验收(30秒)
- 查找用户消息 用图片 在任何会话中,点击它的复制按钮→吐司读取
已复制文字 + N 个附件,可粘贴到任意会话。 - 打开另一个会话(或同一会话)的编写器并按
Ctrl+V→原文加 出现N个附件卡。 - 新闻
Enter→新消息再次显示图像。
隐私和安全
- 网桥路由只接受同源请求。
/inspect只返回形状(会话id,消息) Seq,文本长度,块类型),并且永远不会将消息文本从会话中取出。 - 捕获的包保存在主机内存中(默认是最近的32个),当插件加载时就会消失 卸载或重启主机。没有向磁盘写入任何内容。
- 只有在单击“复制”时才会写入剪贴板;插件从不读取它,也从不上传它 任何地方。
已知的限制
- 它复制邮件真正包含的附件;已被主办方垃圾回收的媒体 无法恢复。
- 每个附件和每个消息默认为24 MB,以保持剪贴板写入响应。提高它 你经常移动大的视频。
- 它复制消息源文本,而不是呈现的降价。
- 视频和音频作为普通文件卡传输;它们不会在编写器(DSH)内嵌预览 它本身也不会在那里预览它们)。
故障排除
| 症状 | 导致 | 修复 |
|---|---|---|
| 吐司上写着“笨笨”。 | 这条信息真的没有附件 | 预期 |
| 吐司上写着“笨笨”。 | 捕获请求失败或主机无法读取附件 | 检查控制台中 [dsh-seesion-copy-enhance] 和 /health capabilities |
| 吐司上写着“中文”。 | 浏览器拒绝剪贴板 | 单击该页一次,检查剪贴板权限 |
| 粘贴仅作为文本到达 | 中间应用删除了令牌 | 从DSH再次复制;DSH→DSH和DSH→富文本都保留它 |
| 无附件卡 | 作曲家被锁住了(裁决/提交)。 | 等待,直到发送按钮空闲,然后再次粘贴 |
| 路由返回404 | 主机部分未加载(无需重新安装即可编辑) | 重新安装 .tgz 或者重启应用程序 |
调试时直接探测Host路由:
curl http://127.0.0.1:<GUI-port>/dsh-seesion-copy-enhance/health
curl http://127.0.0.1:<GUI-port>/dsh-seesion-copy-enhance/inspect
贡献
看到 CONTRIBUTING.md. 没有构建步骤: lib/client.js 确切地说,文件是
浏览器加载,因此页面刷新拾取客户端更改; lib/index.js 需要重新安装。
许可证
麻省理工学院,看到 许可证。