前言¶
需要把 DeepSeek Harness 的对话迁移到另一台电脑、另一个部署环境,或者新建一个工作区?DSH 自带的 /export 命令会生成 .zip 归档和 .l 日志文件,但直接导入往往会导致会话 ID 冲突、数据覆盖,或者在解析中途报错。
dsh-session-import 插件为 DSH Web 界面增加了会话导入功能。它读取并校验导出文件,将内容作为新会话恢复,同时支持选择性同步状态、回滚保护以及 SHA-256 校验。
核心功能¶
界面与交互
* 在 new-session 页面添加「Import conversation」按钮,支持文件选择和拖放。
* 导入前提供预览,显示标题、消息数、工具活动、回合数、原始工作区、模型和会话状态。
* 在浏览器端处理请求取消、焦点恢复和响应式布局。
校验与安全
* 支持 .zip 归档和 DSH /export 生成的 .l 日志。
* 显示 SHA-256 指纹,并可强制要求与 expectedHash 匹配。
* 校验 ZIP 文件的 CRC-32、中心目录元数据、条目边界和本地头名称,拒绝加密、多磁盘和 ZIP64 格式。
* 在持久化、工作区附加或加载验证失败时自动回滚,避免遗留损坏的会话。
导入与同步
* 始终分配新的会话 ID,绝不覆盖现有会话。
* 支持设置目标工作区、自定义标题、原始时间戳或重置为当前时间。
* 提供无副作用(dryRun=1)的验证模式和立即恢复(open=1)模式。
* 支持选择性同步模型、推理努力、代理预设、权限、沙箱、审批策略和计划模式。
安装与启用¶
安装前请确保环境已安装 Node.js(推荐 24 或 22.19.x)、Git 和 pnpm。网络需能访问 registry.npmjs.org 和 github.com。
推荐使用 npx 方式安装(无需 DSH 源码):
npx --yes -p @deepseek-ai/dsh dsh plugin --profile web add github:JuneLearn/dsh-session-import
安装完成后,启动 Web 端即可在新建会话页面看到「Import conversation」按钮。
使用步骤¶
- 打开 DSH Web,在左侧边栏顶部点击
New session。 - 在工作区控制上方找到工作区和模式控件,点击
Standard mode右侧的Import conversation。 - 选择或拖放由 DSH
/export生成的.zip或.l文件。 - 检查结构裁决、SHA-256、计数、原始工作区和可同步状态。
- 选择目标工作区,并根据需要调整标题、重标记和同步选项。
- 点击
Start import,新会话会出现在侧边栏并自动打开。
注意事项与限制¶
- 文件大小限制:上传和解压的根会话日志限制为 256 MB。
- 条目数量限制:单个 ZIP 最多包含 10,000 个条目,展开的根日志最多包含 1,000,000 个事件。
- 验证范围:结构验证覆盖事件序列、时间、类型、引用、回合/步骤和工具调用配对、消息信封、
surfaceOp和sourceEventSeqs。 - Hash 签名:SHA-256 证明与提供的指纹相等,但 DSH 导出未经过数字签名,因此不证明作者身份。
- 权限与数据:上传的文件在内存中本地解析,绝不发送到外部服务;插件不发起出站网络请求,也不访问 API 密钥或其他凭证。
- 删除限制:删除权限仅保留给当前 DSH 进程,导入的会话在重启后继续工作,但不能再通过插件回滚端点删除。
结尾¶
dsh-session-import 提供了一个安全、可控的会话迁移方案,适合需要备份、跨环境复现或整理历史对话的开发者。更多细节可参考 GitHub 仓库 或 社区目录。