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 活動狀態。若有對話正在運行,需明確確認後才能重啓;無運行對話則直接通過。
- 狀態反饋:重啓過程中顯示加載動畫並禁用按鈕。
- 服務接口:通過
betterRestartUiCordis 服務向其他瀏覽器插件暴露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
使用步驟¶
- 啓動 Web UI:執行
dsh web。 - 在設置頭部找到 Restart app 按鈕。
- 點擊後彈出確認對話框,確認後應用將在原地重啓,當前瀏覽器標籤頁會自動刷新。
技術細節與注意事項¶
- 依賴要求:插件依賴
@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 的插件機制集成使用。