DeepSeek Harness 插件:DSH-Launcher(零依賴、零殘留的 Windows 啓動器)

DSH 採用“一切皆插件”的理念。在 Windows 環境下,直接啓動 dsh web 往往面臨依賴複雜、進程殘留或窗口閃爍等問題。dsh-launcher 作爲一個輕量級啓動器,旨在解決這些問題,提供一個無需額外運行時、關閉瀏覽器即自動清理的啓動方案。

這是什麼

dsh-launcher 是一個用 Rust 編寫的單文件 Windows OS 啓動器,專門用於啓動 dsh (DeepSeek Harness) 的 Web UI。它不依賴 WebView2,不攜帶額外的運行時依賴,體積僅幾百 KB。

安裝與啓用

該插件以 dsh 插件的形式分發,安裝過程無額外攔截。

dsh plugin --profile web add github:alvinpro/dsh-launcher

安裝後,可執行文件會隨包進入 node_modules\dsh-launcher\dist\dsh-launcher.exe。

基本用法

1. 默認啓動

雙擊 dsh-launcher.exe 即可運行。無需配置文件,默認以 dsh web 啓動,監聽端口 3080。

2. 命令行啓動

如需自定義端口或參數,可通過命令行覆蓋。

dsh-launcher.exe --port 8899 --args "web --port 8899"

3. 配置文件(可選)

config.json 是可選的。優先級順序爲:命令行參數 > config.json > 內置默認值。

若需固定端口或參數,可複製 config.example.json 並修改。

{
  "dsh_path": "",
  "url": "http://127.0.0.1:8899",
  "port": 8899,
  "timeout_secs": 40,
  "package": "dsh",
  "args": ["web", "--port", "8899"]
}

4. 驗證解析鏈

在不實際啓動的情況下,僅驗證 dsh 命令的解析鏈。

.\dsh-launcher.exe --check

工作原理

該啓動器通過六個步驟管理 dsh 的生命週期:

  1. 探測:檢查端口是否已就緒。若已就緒,直接打開瀏覽器並退出,避免重複啓動。
  2. 解析:按順序嘗試從配置路徑、本地離線包 (vendor\dsh\)、系統 PATH 以及 npx 獲取 dsh,並用 dsh --version 校驗可用性。
  3. 拉起:使用 CREATE_NO_WINDOW 隱藏窗口拉起 cmd.exe,並立即綁定 JobObject,確保後續的進程樹管理。
  4. 就緒:進行 TCP 連通性檢查與 HTTP 響應雙重校驗(端口通 ≠ 服務就緒)。校驗通過後,使用 ShellExecuteExW 前臺喚起瀏覽器。
  5. 聯動:關閉拉起的瀏覽器會導致 dsh 自動停服;若瀏覽器本就在運行,則進入常駐模式,通過托盤圖標退出。
  6. 清理:無論通過何種方式退出(正常、托盤、強殺),JobObject 均會終止整個進程樹,實現零殘留。

核心特性

  • 自動發現:支持配置路徑、本地離線包、系統 PATH 和 npx 的自動發現,無需全局安裝。
  • 真實就緒探測:採用 TCP + HTTP 雙重校驗,並具備自適應退避和超時保護機制。
  • 零殘留:利用 JobObject 的 KILL_ON_JOB_CLOSE 屬性,確保任何退出路徑下進程樹被徹底清理。
  • 瀏覽器聯動:關閉瀏覽器自動停服,共享實例則進入常駐模式,不會誤殺正在使用的瀏覽器窗口。
  • 調用系統默認瀏覽器:不捆綁瀏覽器,直接調用系統默認瀏覽器打開服務地址。
  • 無窗體驗:GUI 子系統運行,無控制台窗口,無黑屏閃爍。日誌落盤於 dsh-launcher.log,出錯時彈窗提示。
  • 異常守護:探測期 dsh 提前退出或超時均有明確的錯誤處理邏輯。
  • 單文件:約 360KB 的 exe,內嵌圖標,零運行時依賴。
  • 不依賴 WebView2:原生 Win32 托盤與彈窗,無需安裝 Edge/WebView2 運行時,兼容 Windows 7+。

退出碼說明

退出碼 含義
0 正常退出
1 配置錯誤或 dsh 啓動失敗
2 端口已就緒但服務響應異常
3 等待服務超時
4 dsh 進程提前或異常退出
5 dsh 命令解析或自動安裝失敗(含 npm 不存在)

適用場景與注意事項

  • 系統要求:僅支持 Windows 7 及以上系統。
  • 權限說明:插件以當前 dsh 進程的權限運行。安裝前建議檢查源碼與許可證(MIT)。
  • 快捷方式:首次運行 dsh plugin add 後,桌面快捷方式會自動創建一次,指向隨包附帶的 exe,之後不再重建。

總結

DSH-Launcher 解決了 Windows 下啓動 DSH Web UI 的核心痛點:依賴複雜、進程殘留和窗口閃爍。通過 Rust 實現的單文件、零依賴設計,它提供了一個極簡且可靠的啓動方案。

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

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

小夜