DeepSeek Harness 插件:dsh-better-restart

DeepSeek Harness (DSH) 採用插件化架構,Web 界面中的重啓功能是日常開發調試中的常見需求。dsh-better-restart 是一個社區維護的插件,它爲 DSH Web 界面增加了“原地重啓”的能力,並在重啓前提供確認機制。

核心功能

該插件分爲主機端和客戶端兩部分,通過瀏覽器與 Node 進程的交互實現功能。

  • 主機端:通過 webServer 暴露兩個接口。
    • POST /better-restart/status:查詢當前 Agent 的運行狀態。
    • POST /better-restart:執行重啓操作。優先使用啓動器提供的 appRestart 服務(返回 204),若不可用則回退到 Root-include recompose 模式(返回 202)。
  • 客戶端:在設置欄新增“重啓應用”按鈕。
    • 確認機制:點擊後彈出對話框,每 1.5 秒輪詢 Agent 活動狀態。若有對話正在運行,需明確確認後才能重啓;無運行對話則直接通過。
    • 狀態反饋:重啓過程中顯示加載動畫並禁用按鈕。
  • 服務接口:通過 betterRestartUi Cordis 服務向其他瀏覽器插件暴露 status() 和 restart() 方法。
  • 無依賴:插件運行時完全自包含,除 Node.js 內置模塊外無其他包依賴。

安裝與啓用

安裝前請確保已安裝 Node.js 22.19+ 或 24+,以及 pnpm 11。

方式一:從源碼安裝(推薦)

若你已經檢出 DeepSeek Harness 源碼,可直接在源碼目錄下執行:

git clone --depth 1 --branch dsh-v0.1.2-rc.1 https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness && pnpm install && pnpm run build
pnpm dsh plugin --profile web add -w github:lovstudio/dsh-better-restart#v0.1.4
pnpm dsh web

方式二:無源碼安裝

若僅需使用該插件而不需要 Harness 源碼,可使用 npx 直接安裝:

npx @deepseek-ai/dsh plugin --profile web add -w github:lovstudio/dsh-better-restart#v0.1.4
npx @deepseek-ai/dsh web

使用步驟

  1. 啓動 Web UI:執行 dsh web。
  2. 在設置頭部找到 Restart app 按鈕。
  3. 點擊後彈出確認對話框,確認後應用將在原地重啓,當前瀏覽器標籤頁會自動刷新。

技術細節與注意事項

  • 依賴要求:插件依賴 @deepseek-ai/dsh-base 中的 webServer 和 agents。appRestart 和 loader 爲可選依賴,若兩者均不可用,重啓操作將返回 503 錯誤。
  • 重啓機制:
    • 首選:appRestart(進程級重啓)。
    • 回退:Root-include recompose。此模式會禁用並重新啓用 Loader 的根 cordis:include 條目,重新讀取配置和插件列表。由於複用 Node 進程,終端保持運行,但需注意瀏覽器端需等待 Socket 關閉響應(202)後纔會刷新。
  • ESM 緩存:Node.js 的 ESM 緩存機制意味着,對於已加載模塊,只有通過 Harness 的 HMR 監聽器才能檢測到源碼編輯的變化。
  • 客戶端自動加載:插件客戶端模塊在插件組合後由模塊系統自動注入頁面,無需重新構建 Web 應用。
  • 文本資源:界面文案位於 @lovstudio/dsh-better-restart 包中,自動註冊到 better-restart-ui 語言環境命名空間。

生態與來源

此插件由 Lovstudio 維護,遵循 MIT 許可證。它不是 DeepSeek 官方維護的包,但可通過 DeepSeek Harness 的插件機制集成使用。

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

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

小夜