dsh-plugin-subitem-status:插件頁子項狀態與設置頁包名提示

前言

在 DeepSeek Harness(DSH)裏管理插件時,側欄「插件」頁的每張卡片通常只反映 bundle 級開關:包開着,不代表包內每個組件都在跑。某個附屬組件已關閉或未運行時,卡片上看不出差異,只能點進詳情頁看「包含的組件」那一行。排查或讓 AI 改插件時,設置頁又多是中文標題,缺少直接的 npm 包名,容易從顯示名猜來源、多讀源碼,浪費 token。

下面介紹社區客戶端插件 dsh-plugin-subitem-status(維護者 lingmingxi):在插件卡片上原樣展示各組件狀態,並在設置相關界面標題下顯示提供者 npm 包名,便於一眼發現問題、把準確包名交給 AI。

這是什麼

dsh-plugin-subitem-status 是面向 DSH Web 客戶端的界面增強插件,不覆蓋 DSH 內核。它做兩件事:

  1. 插件頁:在每張插件卡片上增加一行,列出包內各組件及狀態(與詳情頁同一套文案與狀態點)。
  2. 設置頁:在配置導航及「插件」內部選項卡的標題下方,以淡色小字顯示提供者 npm 包名;長名省略,懸停可看全名。

數據源與官方插件頁同源(remote.pluginManager.listBundles()、listPlugins());包名從 Slot 註冊來源與實際加載模塊清單核對,不讀配置值、聊天記錄或賬戶憑據,也不向外部發數據。許可爲 MIT,當前 package 版本爲 1.1.0。

插件頁:卡片上的子項狀態

DSH 插件管理 UI 中的 PackageCard 沒有「在父卡片上插子項狀態」的 slot,本插件通過 純客戶端 DOM 增強實現:觀察已渲染卡片,用穩定屬性 [data-plugin-package]、[data-plugin-panel] 定位,補一行狀態;React 重渲染抹掉時由 MutationObserver 重放。

狀態文案與點樣式取自官方字典命名空間,與詳情頁一致(例如 ● 運行中、● 已關閉、● 未運行、● 異常)。一個包內多個組件會逐條列出;每個組件都顯示一條狀態;沒有組件時不佔位。

示意(README 中的 ASCII 圖):

┌──────────────────────────────────────────────┐
│  ▣  some-plugin-kit                          │
│     一組示例插件                              │
│     主組件   ● 運行中   附屬組件  ● 已關閉     │  ← 新增
└──────────────────────────────────────────────┘

設置頁:提供者包名

在「設置」的配置頁面導航,以及「插件」分類下的內部選項卡,標題下方會顯示提供者 npm 包名,用於排障和向 AI 說明要改哪個包。

說明與限制(與 README 一致):

  • 6.0.1 中部分來源在界面上被壓縮爲 mf;插件對 21 個設置頁面、5 個內部選項卡維護了 ID→包名兜底表,且仍要求包名出現在當前模塊清單中。
  • 未收錄的新頁面或其它插件覆蓋同一 ID 時,可能顯示 「包名未聲明」;來源無法確定時同樣顯示該文案,不輸出本機路徑。
  • 這是診斷信息,不是提供者身份的安全認證。

把包名告訴 AI,減少定位 token

  1. 打開設置,進入要排查的插件配置選項卡,看標題下方包名小字。
  2. 需要完整名稱時:右鍵小字選「檢查」,或 F12 打開開發者工具,用元素選擇器選中該行;在 Elements 面板複製文本,或讀 title 屬性(長名省略時仍保留完整包名)。
  3. 把完整包名和需求一起交給 AI,例如:

請檢查 dsh-feature-toggles,設置裏「餘額」頁面顯示異常。先定位這個包,再排查問題。

若顯示「包名未聲明」,不要當作真實包名提供給 AI,應另行覈實來源。不需要開發者工具時,可直接看小字或懸停查看全名。

安裝與啓用

安裝命令(來自項目 README):

dsh plugin add github:lingmingxi/dsh-plugin-subitem-status --profile <你的 profile>

也可使用 tarball 或本地路徑(示例版本號與 README 一致):

npm pack
dsh plugin add ./dsh-plugin-subitem-status-1.1.0.tgz --profile <你的 profile>

裝完後 重啓 DSH(客戶端插件需重啓生效,除非 profile 啓用了 client-hmr)。

平臺要求:dsh.client.platform 爲 "web"。插件聲明 inject: [],服務通過 ctx.get() 惰性讀取,以避免 cordis 注入代理在 Web 啓動門禁下導致 entry 無法 active。

適用場景與注意

適合誰:經常在 DSH 插件頁覈對多組件包狀態的用戶;在設置裏改插件配置、或讓 AI 排查插件問題時,需要穩定 npm 包名而不是中文標題的用戶。

使用前請知悉:

  • 插件以當前 DSH 進程權限在瀏覽器端運行;安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。
  • 社區插件目錄 SkillHub 條目 與 DeepSeek / 幻方無官方從屬關係;DSH 生態是「一切皆插件」,本插件是其中的客戶端 UI 增強,不是官方內置能力。
  • DOM 增強依賴官方卡片結構;若未來內核提供卡片級 slot,實現方式可能變化,但「子項狀態與詳情同源」的目標不變。

結尾

dsh-plugin-subitem-status 把詳情頁纔有的組件狀態搬到插件卡片上,並在設置導航處標註 npm 包名,減少「包開着、組件卻異常」的盲區,也減少 AI 從中文名猜包的 token 消耗。需要安裝說明與實現細節時,以 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/lingmingxi/dsh-plugin-subitem-status
  • GitHub:https://github.com/lingmingxi/dsh-plugin-subitem-status
羽毛球分组比赛记分
小程序二维码

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

小夜