dsh-plugin-graph:在 DSH Web 設置頁查看客戶端插件關係圖譜

前言

在 DSH 裏,客戶端插件之間會有注入依賴,也會有插槽聲明和註冊。這些信息分散在啓動清單、插槽註冊表和插件配置裏,排查某個插件依賴誰、誰依賴它、誰聲明瞭某個插槽時,往往要來回查多個位置。

dsh-plugin-graph 是一個面向 DSH Web 設置頁的插件,把這些關係畫成一張力導向圖,用來快速查看客戶端插件之間的 inject、declares 和 registers 關係。

這是什麼

dsh-plugin-graph 由 erduotong 維護,許可證爲 MIT。它不是替代 DSH 運行時的工具,而是在 DSH Web 設置頁增加一個「插件關係圖譜」入口,用只讀視圖展示當前 DSH Web 進程裏的客戶端插件與插槽關係。

核心功能

下面介紹幾個可直接使用的能力。

力導向圖畫布

  • 節點會自動進行物理佈局。
  • 節點大小按度數縮放。
  • 藍色圓點表示插件節點,來自啓動清單 window.__DSH_BOOT__ 與插槽註冊表。
  • 琥珀色菱形表示插槽節點,來自即時插槽註冊表 ctx.slots.snapshot()。

關係邊

  • 藍色 inject:插件對其它包的依賴。
  • 綠色 declares:插槽聲明者。
  • 琥珀色 registers:註冊到插槽的插件。

畫布交互

  • 拖拽節點:釘住該節點,並重新加熱佈局。
  • 拖拽空白處:平移畫布。
  • 滾輪:縮放畫布。
  • 懸停節點:高亮相鄰節點,並彈出信息框,顯示依賴/被依賴、聲明者/註冊者。
  • 點擊手動刷新:重新讀取啓動清單與插槽註冊表。
  • 點擊右上角展開按鈕:打開全屏模態框,可用 Esc、遮罩或 × 關閉。

只讀快照

這個插件不訂閱任何事件,掛載與手動刷新時重建圖;具體而言,它不訂閱 slots/changed,所以 HMR 註冊關係發生變化時,需要手動刷新畫布。

內嵌圖和模態框圖是兩個獨立模擬實例,各自演算佈局,互不共享拖拽位置。

安裝與啓用

前置條件

先確認已經安裝 DeepSeek Harness,並且至少啓動過一次 Web 界面。啓動後會生成 Web profile 目錄:

~/.dsh/profiles/web

安裝

一般用戶可以從 npm registry 安裝:

dsh plugin --profile web add dsh-plugin-graph

本地源碼安裝,例如開發中或未發佈時:

dsh plugin --profile web add /path/to/dsh-plugin-graph

安裝命令會把包裝進 profile 的 package.json 依賴,並鏈接到:

~/.dsh/profiles/web/node_modules

不要用裸 npm i dsh-plugin-graph 安裝。那樣只會裝進當前目錄的 node_modules,DSH profile 不會知道它。

自動加載說明

本包自帶 dsh.bundle 聲明。dsh plugin add 後,會追加到 profile 的 dsh.profile.bundles 層疊,無需手動編輯 cordis.patch.yml。

如果你曾在舊版本、沒有 dsh.bundle 的情況下手動往 cordis.patch.yml 添加過 insert 條目,升級前需要先刪除該條目,再重新安裝,避免重複掛載。

重啓並打開

1、重啓 dsh Web 進程。配置變更和 loader 條目都需要重啓才生效。

2、打開設置頁,也就是側邊欄底部的「設置」。

3、找到「插件關係圖譜」入口,點擊進入即可看到力導向圖。

典型用法

下面是常見的排查路徑。

1、安裝插件後重啓 dsh Web 進程。

2、打開 Web 設置頁,進入「插件關係圖譜」。

3、懸停一個插件節點,查看它的依賴/被依賴、聲明者/註冊者。

4、如果圖中節點較多,點擊手動刷新,重新讀取啓動清單和插槽註冊表。

5、需要細看關係時,打開全屏模態框,用滾輪縮放和拖拽空白處平移。

如果你要在本地源碼目錄裏構建和測試,可以執行:

pnpm install
pnpm build
pnpm test

卸載時使用:

dsh plugin --profile web remove dsh-plugin-graph

適用場景與注意

適合在以下場景使用:

  • 排查某個 DSH Web 客戶端插件依賴了哪些包。
  • 查看某個插槽由誰聲明、由哪些插件註冊。
  • 在本地源碼安裝後,快速確認插件與插槽關係是否符合預期。

注意:

  • 它只覆蓋客戶端插件。宿主平面行,例如 webserver、storage,不在 window.__DSH_BOOT__ 中;只有當它們被插槽聲明或註冊時纔會出現。
  • 它是隻讀快照視圖,不改變 DSH 運行行爲。
  • 它會以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。許可證爲 MIT。
  • 安裝時如果 pnpm 報 peer 依賴缺失,例如 missing peer @deepseek-ai/cordis / react ...,這是預期提示,運行時由宿主提供。
  • 如果你通過社區目錄使用它,注意社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係;不要把它理解成官方應用商店。

結尾

dsh-plugin-graph 的價值在於把 DSH Web 設置頁裏分散的客戶端插件關係收斂成一張可讀圖。它適合做依賴排查、插槽關係確認和本地開發驗證。

GitHub:

https://github.com/erduotong/dsh-plugin-graph

目錄頁線索:

https://www.skillhub.cn/plugins/erduotong/dsh-plugin-graph
羽毛球分组比赛记分
小程序二维码

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

小夜