前言¶
DSH 里的会话可以发生 fork。fork 之后,子会话会继承父会话的历史,但侧边栏通常只呈现一个带缩进的扁平列表。这种列表能说明“有哪些会话”,不太能说明“哪个会话从哪个会话来”。
dsh-fork-graph 解决的是第二个问题:把会话 fork 关系画成 git-graph 风格的拓扑,并允许在分支之间跳转。
这是什么¶
dsh-fork-graph 是一个 DeepSeek Harness(DSH)Web 插件,由 chouyong 维护,许可证为 MIT。
它的一句话定位是:在 DSH 会话头部显示 git-graph 风格的会话 fork 拓扑,让你看到哪个 session 从哪个 session 分叉,并可以在分支之间跳转。
它不替代 DSH 的 fork 动作,也不维护一套独立的会话数据;它只把 DSH 已有的会话列表数据投影成图。
核心功能¶
- 在会话头部显示 git 风格的会话 fork 历史。
- 每个分支有自己独立的彩色 lane;fork 用曲线从父节点离开。
- 每个 session 占一行,显示标题,以及
current、running、subagent、forks into N等事实。 - 点击任意节点可以跳转到对应 session。
- 默认聚焦当前 session 的 lineage family,而不是列出所有历史会话。
- 如果当前 lineage 没有 fork,该控件不渲染。
- 支持英文和中文,跟随页面语言。
- 无写入行为:不产生 session events,不发起 RPC,不持久化状态,不涉及 prompt content。
- 它是 DSH session list data 的纯投影,不引入第二数据源。
安装与启用¶
安装前确认环境:
- DSH
- Node.js
^22.19.0 || >=24.0.0 - pnpm
下面介绍 Web profile 下的安装方式。
1、在 Web profile 安装插件:
dsh plugin --profile web add github:chouyong/dsh-fork-graph
2、启动 DSH Web UI:
dsh web
3、如果 pnpm ≥10 拒绝该插件的 prepare script,需要在该 profile 的 pnpm-workspace.yaml 中加入以下配置:
allowBuilds:
dsh-fork-graph: true
加完后重新执行上面的 add 命令。
4、如果不想让后续 push 改变本机安装内容,可以用 commit 固定版本:
dsh plugin --profile web add github:chouyong/dsh-fork-graph#<sha>
5、如果 git 安装因为未发布的 @deepseek-ai/dsh-compact 失败,可以改用预构建 tarball 方式:
npm install --ignore-scripts --legacy-peer-deps
npm run build
npm pack
dsh plugin --profile web add ./dsh-fork-graph-0.1.0.tgz
6、移除插件:
dsh plugin --profile web remove dsh-fork-graph
典型用法¶
经过上面的步骤后,运行:
dsh web
然后在 DSH Web 的会话头部查看该插件提供的控件。
它默认只展示当前 session 所在的 lineage family。每一行对应一个 session,并显示标题以及当前状态,例如 current、running、subagent、forks into N。
点击任意节点会跳转到对应 session。
如果当前 lineage 没有 fork,该控件不会渲染。空白 leaf session 会被隐藏,但当前 session 除外;面板会显示被隐藏的数量。较宽的 lineage 会滚动显示,因为 lane 不会被回收。
适用场景与注意¶
这个插件适合在 DSH 中多次 fork session、需要快速判断会话来源和分支位置的开发者。
使用前需要注意:
- 它是只读可视化,不产生 session events,不发起 RPC,不持久化状态,不涉及 prompt content。
- 它不提供 fork UI;DSH 已有 fork actions,这个插件负责可视化结果。
- 它不显示 fork 发生的具体位置,因为 DSH 当前没有把
seedLengthsurface 到浏览器。 - 语言跟随文档或页面语言,不跟随 DSH 的 locale service。
- 部分 DSH 包因未发布的
@deepseek-ai/dsh-compact无法从 npm 安装,因此 README 提供了预构建 tarball 的备用安装方式。 - 插件以当前 dsh 进程权限运行。安装前应检查源码、依赖和许可证。
短结尾¶
dsh-fork-graph 的价值,是把 DSH 会话中的 fork 关系从扁平列表变成可点击、可追踪的拓扑图。
GitHub 仓库:
https://github.com/chouyong/dsh-fork-graph
已核实材料未提供插件目录页 URL。如果从 DSH 插件目录安装,可按名称搜索 dsh-fork-graph。