前言¶
用 DeepSeek Harness(DSH)跑長任務時,常見做法是開着 Web 界面等一輪對話結束。切到別的窗口寫代碼或開會,往往不知道任務已經跑完;需要審批或回答問題時,也要靠時不時切回瀏覽器。主進程一旦因插件未捕獲的錯誤退出,排查往往要從終端日誌裏翻堆棧開始。
dsh-sentinel 是社區維護者 herenfor 發佈的客戶端類插件,在 DSH 主程序之外承擔「照看」:一輪對話正常結束或需要你出面時發通知,可選 Windows 托盤啓動/停止 DSH,並在崩潰後寫報告、拉起緊急 DSH 與本地說明頁。它接替已不再更新的 dsh-task-notify。目錄頁:https://www.skillhub.cn/plugins/herenfor/dsh-sentinel,源碼:https://github.com/herenfor/dsh-sentinel。
這是什麼¶
一句話:在 DSH 主進程之外提供任務完成提醒、托盤啓動,以及崩潰後的緊急 DSH 與說明頁面;可選插件健康檢查。
維護者 herenfor,許可證 MIT(見倉庫 LICENSE)。當前資料中的插件版本爲 0.3.0,面向 DSH 0.2.x(>=0.2.0-rc.2 <0.3.0-0)。文檔寫明主要在 Windows 11 + WSL2 下使用,DSH 運行在 WSL 中;獨立 headless、sdk 和 sdk-minimal profile 暫不支持,需要 DSH 的 web profile 及 DSH 支持的 Node.js 版本。
核心功能¶
任務與注意力通知¶
- 一輪對話正常結束時發送通知;取消、出錯和委派的子任務結束時不提醒。
- 本輪啓動的後臺任務(例如編譯)仍在運行時,結束的這一輪不提醒;等後臺任務結束、AI 處理完結果後再提醒。
- 需要你出面時也會提醒:有待審批操作、AI 提問,或本輪結束時還有未回答問題;5 秒內處理完的不提醒。
- 支持 Web 模式裏的 minimal 預設(AI 沒有工具也能觸發)。
- 優先使用瀏覽器通知;瀏覽器未打開、無權限或發送失敗時,改用 Windows 系統通知(DeepSeek Harness 名稱、鯨魚圖標、默認提示音)。通知失敗不影響任務運行。資料說明通知暫不支持點擊後跳轉到對應對話。
可選 Windows 托盤¶
插件包內帶可選托盤程序,需單獨安裝(不是 DSH 插件本體的一部分):雙擊/單擊打開網頁,右鍵可重啓或停止 DSH 等。安裝腳本位於安裝後的 node_modules/dsh-sentinel/tray/install.sh。
崩潰防護¶
DSH 進程異常退出後(資料舉例:某插件拋出未處理錯誤),可自動:將崩潰報告寫入 ~/.dsh/logs/dsh-sentinel/crashes/<時間>/;啓動不帶第三方插件的緊急 DSH(profile sentinel-rescue);在瀏覽器打開本地說明頁,並可在 WSL 下發送 Windows 通知。不會修改你的既有配置。
僅安裝插件並照常啓動時,運行中崩潰有保護;啓動就失敗(配置錯誤、插件裝壞)需通過啓動器 dsh-sentinel-run 啓動 DSH 才能覆蓋。托盤默認經啓動器啓動則無需改命令;終端自啓需在 dsh web 前加啓動器前綴(見下文典型用法)。
插件健康檢查(可選,默認關閉)¶
DSH 啓動完成時檢查已啓用但未正常運行的插件,狀態變化時再查;可發 Windows 通知,並在 設置 → 插件健康 或 http://127.0.0.1:<端口>/dsh-sentinel/health 查看。只讀狀態,不修改插件。
安裝與啓用¶
在 WSL 終端執行(命令來自倉庫 README):
dsh plugin --profile web add github:herenfor/dsh-sentinel#v0.3.0
安裝後等當前任務結束,重啓 DSH 並刷新瀏覽器頁面。WSL 需能找到 pnpm,且能運行 Windows 程序以便發送 Windows 通知。
若曾安裝過 dsh-task-notify,先卸載再裝本包(通知設置會保留):
dsh plugin --profile web remove dsh-task-notify
若 profile 裏仍有舊的手動 task-notify 路徑,請刪除以免覆蓋新版本。
開啓瀏覽器通知:
- 打開 DSH 設置 → 任務通知。
- 點擊 啓用瀏覽器通知,在瀏覽器中允許。
- 點擊 測試通知 確認。
頁面需通過本機 localhost / 127.0.0.1 或 HTTPS 打開;換瀏覽器、端口或域名需重新授權。
啓用插件健康檢查:在 cordis.patch.yml 中設置 sentinel-health 的 disabled: false 後重啓 DSH。崩潰防護相關項爲 sentinel-crash-guard(rescue / openPage / notify 等,整段關閉可用 disabled: true)。
卸載:
dsh plugin --profile web remove dsh-sentinel
典型用法¶
用啓動器覆蓋「啓動即失敗」¶
在終端啓動 DSH 時,在命令前加上啓動器(路徑以 web profile 安裝後爲準):
node ~/.dsh/profiles/web/node_modules/dsh-sentinel/bin/dsh-sentinel-run.mjs -- dsh web --port 3080
啓動器會把 DSH 輸出原樣轉出;正常 Ctrl+C 或托盤停止不會誤報崩潰。
自測崩潰防護¶
先停掉正在運行的 DSH 或換端口,再執行:
DSH_SENTINEL_CRASH_TEST=10 dsh web
約 10 秒後 DSH 會故意崩潰,應出現說明頁與緊急 DSH;報告會標明自測。試完按說明頁命令關閉緊急 DSH。
安裝托盤(可選)¶
在 WSL 中:
bash ~/.dsh/profiles/web/node_modules/dsh-sentinel/tray/install.sh
文件複製到 Windows 的 %USERPROFILE%\DshTray。非默認端口可用 --port;自定義啓動/停止可在 ~/.config/dsh-tray/env 中設置 DSH_TRAY_START、DSH_TRAY_STOP 等(見 README)。
Windows 通知備用路徑:默認 PowerShell 5.1;失敗時可嘗試 pwsh + BurntToast 1.1.0:
Install-Module BurntToast -RequiredVersion 1.1.0 -Scope CurrentUser
適用場景與注意¶
適合在 Windows 11 + WSL2 上用 web profile 日常跑 DSH、希望離開瀏覽器窗口仍能收到完成/審批/待答提醒,並希望在進程崩潰時有報告與緊急修復入口的用戶。
使用前請注意:插件與 DSH 在同一進程權限與環境中運行,安裝前應閱讀倉庫源碼與 MIT 許可證,自行評估信任邊界。SkillHub 目錄與 GitHub 均爲社區生態,與 DeepSeek / 幻方無官方從屬關係。
限制(來自 README):kill -9 或 OOM 強殺時無法留記錄;疑似插件由堆棧推斷;緊急 DSH 需 dsh 命令行,與桌面版限制見文檔;健康檢查對導入即失敗的插件只能顯示「沒有啓動」,細節需看啓動日誌。
結尾¶
dsh-sentinel 把「任務是否結束、是否要回來處理」和「崩潰後如何自救」從主進程裏拆到外圍:通知、托盤、啓動器與可選健康檢查,組成一套主要在 WSL + Windows 下的照看方案。
- 目錄頁:https://www.skillhub.cn/plugins/herenfor/dsh-sentinel
- GitHub:https://github.com/herenfor/dsh-sentinel
- 問題反饋:https://github.com/herenfor/dsh-sentinel/issues(附 DSH 版本、瀏覽器與復現步驟;分享日誌前請去掉憑證與會話信息)