前言¶
在 DSH(DeepSeek Harness)的会话标题栏,复制一个会话曾经需要点三次按钮:深度链接、对话 Markdown、工作目录。标题栏原本就拥挤,再挤进一排按钮会进一步干扰工具栏。dsh-session-copy 把这三个操作折叠成一个 28 像素的按钮,菜单里保留相同的三项,只增加一个图标。日常复制时不再需要与工具栏抢位置。
Markdown 导出是这一插件的主要工作。DSH 的会话日志并非简单的聊天记录,而是工具调用、重试、剪枝行、注入上下文与压缩检查点等事件流。会话会随时间压缩,压缩点会改变模型可见的历史。如果只截取最后一条 assistant/message,会丢失 41% 的助手文本(在一条真实会话中约 1.57 万字符),并丢掉整轮中的 29 条中间消息。本插件从日志流中重建对话,并处理压缩与代码块标记等细节,输出可用的 Markdown 文档。
是什么¶
dsh-session-copy 是一个 DSH 客户端插件,维护者为 2310770803。它通过会话标题栏的按钮提供三个复制功能:深度链接、完整对话 Markdown、当前工作目录。插件版本 1.2.0,许可证为 MIT。
核心功能¶
- 复制深度链接:生成
@[title](dsh-session:<base64url(session id)>)格式的会话引用。在任意编辑器中粘贴该链接,DSH Host 会附加该会话快照,使另一条对话能够读取当前会话。 - 复制为 Markdown:输出完整对话的 Markdown 文档,每一轮消息独立为一段,保留所有助手步骤,折叠工具输出与推理细节,对压缩点做显式标记,并平衡全文的代码块标记。复制操作会返回字符计数,便于判断会话长度。
- 复制工作目录:读取会话的
cwd(当前工作目录),优先从会话列表投影读取,若不可用则使用 Host 快照作为后备。
Markdown 导出包含几个关键处理:
- 保留每轮对话的所有助手步骤,而非仅最后一条消息。
- 对压缩点使用显式“Conversation compacted”标记,避免误判为丢失内容。
- 跨文档平衡代码块标记,而非逐条消息平衡,防止出现孤立的代码块闭合符。
安装与启用¶
从 npm¶
dsh plugin add dsh-session-copy
在桌面应用内¶
桌面应用有独立的插件管理器:打开 Settings → Plugins,从中安装该插件。安装后需要重启 DeepSeek Harness,因为 Loader 在启动时组装插件列表,仅刷新页面是不够的。
从源码检出¶
node scripts/install.mjs --check # 检查当前配置的健康状况,不改变任何内容
node scripts/install.mjs # 在当前配置中安装或刷新插件
node scripts/install.mjs --uninstall # 卸载
从发布 tarball¶
对于不希望从源码构建的主机,可从发布包安装:
dsh plugin --profile web add \
https://github.com/2310770803/dsh-session-copy/releases/latest/download/dsh-session-copy.tgz
发布包名称不包含版本号,releases/latest/download/ 路径在请求时解析为 latest,但文件名保持不变,因此通过标签发布时会自动更新该 URL。
典型用法¶
- 在 DSH 会话标题栏找到新增的按钮图标。
- 点击该按钮,从弹出菜单中选择一项:
- 复制深度链接:粘贴到其他对话的编辑器中,可触发会话引用解析。
- 复制为 Markdown:将完整对话导出为 Markdown,适用于离线归档或跨会话引用。
- 复制工作目录:将当前会话的cwd复制到剪贴板,便于在本地复现会话环境。 - 查看右下角的小提示,了解复制的内容与字符数。
适用场景与注意¶
- 适合需要在 DSH 之间传递会话上下文、归档对话或复现会话环境的开发者与智能体开发者。
- 插件运行在 DSH 进程的权限范围内,安装前应检查源码与许可证(本插件为 MIT)。
- Markdown 导出长度会被限制在 220,000 字符以内,并在章节边界截断,以避免超出剪贴板写入的可靠容量。
小结¶
dsh-session-copy 通过标题栏上的一个按钮,将深度链接、对话 Markdown 与工作目录三个操作整合在一起,减少了界面干扰,并重点处理了会话日志重建与压缩标记的细节。需要使用会话引用或导出完整对话时,可以借助它减少手动操作。