在 DeepSeek Harness (DSH) 中,同一轮对话 fork 后,常见问题不是“有哪些分支”,而是“两个分支的公开历史具体有哪些不同”。逐个打开会话并来回滚动很难比较长回答、工具轨迹和 token 开销。dsh-fork-diff 将这些信息放在一个可筛选的双栏视图中,用于并排比较相关会话分支。
插件定位¶
这是一个为 DeepSeek Harness 设计的只读、分支感知对话差异插件。它将当前会话与父分支、子分支或兄弟分支的公开历史对齐,并突出显示回答、工具调用和工具结果的差异。插件全程只读,不创建 fork,不修改文件,不写入 session event。
核心功能¶
- 分支发现:自动发现当前会话的父、子和兄弟分支,不混入无关会话。
- 内容对齐:对齐用户消息、assistant 最终回答、工具调用和工具结果。
- 差异高亮:区分不变、已修改、仅左侧和仅右侧内容,并提供行级文本高亮。
- 统计汇总:汇总用户消息、回答、工具调用、耗时和可见 token usage。
- 交互与视图:支持比较对象切换、在“仅差异”和“全部”之间切换、从分支摘要中打开对应会话。支持桌面双栏、移动端单栏布局,支持 Escape 关闭、焦点陷阱和焦点恢复。
- 分页与对齐:提供完整历史反向分页,包含取消、重复序号、无进展、非连续页和页数上限保护。大历史和长文本会显式进入快速对齐模式,避免把近似结果伪装成精确结果。
安装与启用¶
该插件需要 DeepSeek Harness 0.1.0-rc.5 或兼容版本,以及 Node.js ^22.19.0 || >=24.0.0。
使用预构建的 tarball 安装到 web profile:
dsh plugin --profile web add https://github.com/chouyong/dsh-fork-diff/releases/download/v0.1.0/dsh-fork-diff-0.1.0.tgz
安装后启动或重启对应的 profile:
dsh --profile web
典型用法¶
- 打开一个存在父、子或兄弟分支的 DSH 会话。
- 点击会话标题栏中的“比较分支”。
- 从“比较对象”选择相关分支。
- 在“仅差异”和“全部”之间切换,或从分支摘要中打开对应会话。
隐私与边界¶
插件只读取 DSH 浏览器中已公开的会话列表和 sessions.history API:
- 不创建 fork,不写 session event,不修改文件。
- 不恢复后台 Agent,不注入 prompt,不上传会话正文。
- 不读取 Cookie、凭据、隐藏数据库或未公开运行态。
- 不判断哪个分支“更好”,不执行 merge 或 cherry-pick。
- 客户端摘要没有公开持久化 seedLength,因此 v1 不宣称精确 fork 点或事件级共同祖先。
生态背景¶
DeepSeek Harness 的理念是“一切皆插件”。该插件托管在 GitHub 上,并在社区目录中可用。该目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
该工具为开发者在分支对话中快速识别差异提供了一个实用的解决方案,无需手动处理复杂的会话历史。