dsh-session-import:把其他 Coding Agent 会话迁入 DSH

前言

在 DeepSeek Harness(DSH)里做智能体开发时,对话、工作区与附件往往已经落在 DSH 的 v4 Session 体系里。若你同时在 omp、Claude Code、Codex CLI 等 harness 里积累了大量本地会话,常见做法是手动翻 JSONL、或指望源工具继续跑——既难在 DSH 里统一检索,也无法把历史当成一条独立对话继续写下去。

下面介绍社区插件 dsh-session-import(维护者 Lipraty,GitHub 分类为记忆类能力):它把支持的 coding-agent 本地会话复制成独立的 DSH 格式归档,再按次导入为新的 DSH 对话与工作区,之后在 DSH 内继续即可,不依赖源运行时桥接,也不会重放历史工具调用。

这是什么

dsh-session-import 是可通过 GitHub 安装的 DSH bundle 插件(MIT 许可,当前 package 版本 0.2.1,尚未单独发布 npm 包)。一句话定位:从本机已支持的 harness 发现会话归档,同步为可保存的 DSH v4 转换副本,再导入为原生 DSH 对话。

插件使用 DSH 自带的 React/模块加载、主题与可选原生 UI 组件;仓库已提交 lib 入口与手写 Client bundle,无需在本机对插件再执行 npm install 或 build。

核心功能

README 将流程归纳为四步,其中「同步」与「导入」刻意分离:

  1. Discover:扫描本机受支持 harness 的会话归档。
  2. Sync:把可读、有效的历史写入已保存的 DSH v4 转换副本(conversion copy)。
  3. Import:将该副本导入为全新的原生 DSH 对话与工作区。
  4. 后续完全在 DSH 内进行,无源运行时桥接、无历史工具执行。

关于边界,资料中强调:

  • 仅 Sync 会更新转换副本;不会创建、修改、替换或归档已有 DSH 对话,也不会检查既有对话日志。
  • 每次 Import 都会生成新的 conversation ID;重复导入(含并发相同调用)不会复用旧对话。
  • 副本保存后,即使删除源 harness 归档仍可导入;源侧后续变更也不会改写已导入的 DSH 对话。

界面侧(Import 侧栏页):左侧 harness 列表,右侧记录;可按标题、目录或 session ID 搜索;虚拟列表展示附近行并在底部显示总条数;选中 harness 后可 Sync All(顺序处理可读源,单条失败可报告并中止后续);每行 Import 单独创建新对话。导入时可选择在该对话中省略 reasoning 或 tool 输出,且不会裁剪已保存的完整转换副本;若原工作区目录不存在,可另选目标目录。

当前文档列出的集成来源(节选,以 README 表格为准):

Harness 范围摘要
omp JSONL v3,选定 root-to-leaf 历史,文本/reasoning/tools/图片及 compaction 投影;兄弟分支、账号 pin、源运行时状态不迁移。
Claude Code 项目 JSONL UUID 主线,可读 thinking/tools/results 与内嵌图片;磁盘格式为内部格式;preserved-message compaction 重链与递归 subagent 导入不支持。
Codex CLI 旧版 rollout JSONL、规范 response 流、可读 reasoning/tools 与 provenance(README 在该行后被截断,细节以仓库为准)。

环境与兼容性

  • 需要带原生 v4 Session、Session Controller、workspace、attachment 与本插件所用 client-module 服务的 DeepSeek Harness。
  • 当前集成目标为 DSH 0.2.0-rc.2 及其 v4 持久化关系规则;与其他或未发布运行时版本的兼容性不作保证。
  • DSH 宿主需 Node.js 24+;SQLite 适配使用内置 node:sqlite,不启动上游 CLI、不跑源库迁移。

安装与启用

在 DSH 中打开 Plugins → Add Plugin → Git repository,填入带版本钉扎的地址:

https://github.com/Lipraty/dsh-session-import#v0.2.1

安装并启用 bundle 后,仅在 DSH 提示时再 reload/restart。侧栏打开 Import 即可使用;无需手动改 profile 插入项,也无需单独构建。包声明 dsh.bundle.patch,随包分发 cordis.patch.yml,Host 从同包加载;浏览器模块注册名为 dsh-session-import。

若 0.2.0 安装失败:初版缺少 bundle 声明,DSH 可能拒绝非 bundle 包;0.2.1 修复声明、将 patch 纳入产物并对齐 Client 模块 ID,请用上述钉扎 URL 重试,避免使用旧缓存修订。若 profile 里仍有手动 omp-import 或 session-import 条目,启用 bundle 前应先禁用旧条目——二者路由、工具与面板 key 冲突,不可同时加载(/omp-import/* 路由名保留兼容)。

仅开发时可在目标 profile 下 clone 到 plugins/dsh-session-import 并用手动插入(与 managed bundle 勿同时启用):

- insert:
    - id: session-import
      name: ./plugins/dsh-session-import/lib/index.js

安装问题勿通过删除转换副本、工作区注册或 session 日志来「修复」;依赖安装与 bundle 启用交给 DSH 处理。

插件以当前 DSH 进程权限访问本机会话与归档路径;安装前请自行审阅 GitHub 仓库 源码、MIT 许可证及 THIRD_PARTY_NOTICES.md(第三方标识保留独立权利说明,不在项目 MIT 授权范围内)。

典型用法

  1. 完成安装并启用后,在侧栏进入 Import。
  2. 在左侧选择要处理的 harness(如 omp、Claude Code 等本机已有归档的来源)。
  3. 需要刷新本地可读历史时,对当前 harness 执行 Sync All;等待顺序同步完成,留意单条失败提示。
  4. 在右侧列表用搜索定位目标会话,对该行点击 Import;每次操作都会新建一条 DSH 对话。
  5. 若仅需精简展示,在导入选项中省略 reasoning 或 tool 输出;需要时在工作区不存在时指定替代目录。
  6. 在 DSH 中打开新对话继续协作;已导入对话不受之后对源归档的 Sync 影响。

资料未要求为「仅安装」场景执行 sync 或 import;用 coding agent 协助安装时,README 提供了限定范围的提示词(只装插件、不自动 sync/import、不提交模型连通性请求等),可从仓库 README「Install with an LLM」一节复制使用。

适用场景与注意

适合:已在 omp、Claude Code、Codex CLI 等支持列表中的工具里存有会话,希望在 DSH 里以独立对话与工作区延续、统一检索,并保留可重复导入的转换副本。

需注意:

  • 同步的是「可读有效历史」的投影,非源工具完整运行时状态;分支、账号 pin、部分 compaction/subagent 等能力明确不在范围内。
  • Import 不会复用旧 conversation ID,重复导入会产生多条平行对话。
  • 社区目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;星标与分类以各站点展示为准(GitHub 当前为 2 stars,分类:记忆)。

结尾

dsh-session-import 把「发现 → 转成 DSH v4 副本 → 导入新对话」拆成可控两步,让你在不换 harness 的前提下,把既有 coding-agent 历史迁进 DSH 工作流。查阅说明与版本钉扎安装地址请以仓库为准。

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

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

小夜