yeqingtang/dsh-task-watcher-plugin:DeepSeek Harness 的 Windows 托盤監視器插件

前言

DeepSeek Harness(DSH)採用插件化架構。在 Windows 環境下,管理一個常駐系統的托盤監視程序(如 DshTaskWatcher)通常需要手動下載安裝包、配置環境並確保進程常駐。yeqingtang/dsh-task-watcher-plugin 將 DshTaskWatcher(獨立 PowerShell 托盤應用)打包進 DSH 插件,在 DSH 的框架下完成部署、拉起與生命週期管理,解決了獨立進程與宿主服務解耦的需求。

核心功能

該插件採用 Host + Web 雙半端 架構,主要能力如下:

  • 脫離宿主進程:使用 CREATE_NO_WINDOW 標誌啓動 PowerShell,不綁定 job,無終端窗口。DSH 進程重啓或關閉時,托盤監視器會繼續運行,不受影響。
  • 獨立生命週期:插件僅負責部署與啓動,不干預托盤的日常運行。即便停用或卸載插件,正在運行的監視器也不會被終止。
  • 停止意圖記憶:當通過開關或托盤右鍵退出監視器時,會生成 stopped.flag。DSH 重啓後不會自動拉回已停止的監視器,除非手動重新啓動(這符合“崩潰/強殺仍允許自動恢復”的設計邏輯)。
  • 單實例互斥:監視器內部實現了互斥鎖,防止與手動安裝的實例產生雙托盤。
  • 零依賴零構建:依賴庫爲純手寫 ESM,無構建步驟,減少環境複雜度。

管理 API

插件提供三個 Loopback POST 接口用於控制:

  • POST /api/dsh-task-watcher/status:查詢運行狀態、PID 和已部署版本。
  • POST /api/dsh-task-watcher/start:增量覆蓋部署 assets 並拉起托盤。配置文件 config.json 僅在缺失時寫入。
  • POST /api/dsh-task-watcher/stop:停止托盤進程。匹配邏輯嚴格錨定 -File DshTaskWatcher.ps1,避免誤殺其他包含該文件名的進程。

安裝與啓用

在終端中執行以下命令安裝插件:

dsh plugin --profile web add @yeqingtang/dsh-task-watcher-plugin

安裝完成後,需要重啓 web 服務才能生效。啓用後,可在 設置 → 插件 → 任務監視器 中看到狀態顯示與啓停開關(界面每 10 秒輪詢一次,支持中英雙語)。

使用注意事項

  1. 平臺限制:僅支持 Windows (win32)。
  2. Node 版本:要求 Node.js 版本 >= 20.0.0。
  3. 部署路徑:監視器會被安裝到 %LOCALAPPDATA%\DshTaskWatcher。
  4. 停止邏輯:停止接口只匹配通過 start 接口拉起的進程,不會誤殺其他啓動腳本。

總結

該插件通過 Shell 集成的方式,將獨立的 Windows 托盤程序納入 DSH 生態。它既保留了監視器的獨立性,又通過 API 提供了統一的控制入口,適合需要在 Windows 環境下維護常駐後臺任務的 DeepSeek Harness 用戶。

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

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

小夜