前言¶
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。