dsh-fork-graph:在 DSH 会话头部显示会话分叉拓扑

前言

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 占一行,显示标题,以及 currentrunningsubagentforks 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,并显示标题以及当前状态,例如 currentrunningsubagentforks 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 当前没有把 seedLength surface 到浏览器。
  • 语言跟随文档或页面语言,不跟随 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

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

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

小夜