DeepSeek Harness Windows 原生通知插件:dsh-win-notify

前言

DeepSeek Harness (DSH) 的通知插件通常運行在渲染層(瀏覽器頁面內的 JS)。當你把標籤頁切走、關閉瀏覽器窗口,或者最小化 DSH 時,這類通知就會失效。這恰好是你最需要被叫回來處理任務的時候。

dsh-win-notify 插件運行在宿主層(Cordis host 半身),即 DSH 的主進程。事件在進程內直接產生,不經過瀏覽器。因此,前臺窗口是否打開、標籤頁是否在瀏覽器中,都不影響通知送達。它利用 Windows 原生 Toast API,提供對話完成、子代理狀態、後臺任務等事件的通知。

核心功能

插件通過監聽 DSH 的宿主事件觸發通知,覆蓋以下場景:

  • 對話事件:對話回合完成、出錯或中斷。
  • 子代理事件:子任務完成或異常結束。
  • 後臺任務:任務完成、失敗或取消。
  • 用戶交互:模型提問、工具審批請求。
  • 通知特性:
    • 前臺探測:默認 auto 模式下,通過 Win32 API 探測前臺窗口,正在看 DSH 時不彈窗。可設爲 always 或 never。
    • 合併與去重:同一工作區短時間內的多會話完成會合併爲一條通知;後臺任務與回合完成也會合並。
    • 速率控制:支持全局速率配額(minIntervalMs / ratePerMinute)和免打擾時段(quietHours)。
    • 音效:使用 Windows 系統具名音效(Notification.*),按事件區分(完成、提問、審批、出錯)。
    • 點擊行爲:Desktop 配置下點擊通知抬回窗口;其他場景打開帶鑑權 token 的 Web UI。

安裝與啓用

插件包名爲 @zhang-tod/dsh-win-notify。

CLI 安裝

適用於 web、headless、sdk、acp 及自建配置檔:

dsh plugin --profile <profile> add @zhang-tod/dsh-win-notify

安裝完成後,必須重啓 DSH 才能加載宿主層插件。

Desktop 安裝

DSH Desktop 的配置檔由 Electron 應用獨佔管理,CLI 命令會被拒絕。請通過應用內入口操作:

  1. 側欄點擊 插件。
  2. 點擊 Add plugin,輸入 @zhang-tod/dsh-win-notify。
  3. 安裝後啓用該 bundle,隨後重啓 DSH。

配置方法

配置文件位於配置檔的 cordis.patch.yml 中。按以下格式編寫:

id: dsh-win-notify
config:
  # 前臺探測模式:auto (默認), always, never
  mode: 'auto'
  # 是否開啓對話回合通知
  turns: true
  # 是否開啓子代理通知
  subagents: true
  # 是否開啓後臺任務通知
  jobs: true
  # 是否開啓提問通知
  questions: true
  # 是否開啓審批通知
  approvals: true
  # 是否播放音效
  sound: true
  # 端口:0 表示自動獲取 DSH 實際端口,不要寫死
  port: 0
  # 免打擾時段,如 "23:00-07:30",支持跨午夜
  quietHours: ""
  # 免打擾時段內是否放行緊急事件(提問/審批)
  quietUrgent: true
  # 全局速率限制:相鄰通知最小間隔毫秒數
  minIntervalMs: 3000
  # 合併窗口:同工作區多會話完成合並的時間窗口
  mergeWindowMs: 3000

限制與不做

插件有明確的能力邊界,使用前需瞭解:

  • 平臺限制:僅支持 Windows,不支持 macOS 或 Linux。
  • 音效限制:音效不可自定義,必須使用 Windows 系統具名音(Notification.* 前綴)。sound 僅是開關,不能更改音色。
  • 審批限制:不支持 toast 按鈕一鍵審批;不支持常駐通知(scenario="reminder")。
  • 點擊限制:點擊通知不會跳轉到具體會話,僅打開 DSH 主界面(Desktop 下抬回窗口)。
  • 權限依賴:若 DSH 處於全權限模式(approval: never),系統層面不會發出審批請求,插件自然收不到通知。
  • 安裝限制:Desktop 配置檔不能通過 CLI 的 --profile desktop 安裝,必須走應用內設置。
  • 技術細節:
    • 不聲明 @deepseek-ai/dsh-* peerDependencies。
    • 不提供圖形設置頁,配置直接寫 cordis.patch.yml。
    • 通知歸屬可能顯示爲通用值(取決於系統註冊的應用標識)。
    • 前臺探測可能因窗口標題被修改而失效。

總結

dsh-win-notify 爲 Windows 上的 DSH 提供了可靠的宿主層通知能力,解決了瀏覽器關閉後消息丟失的問題。它通過合併、去重和速率控制,保持了通知系統的整潔。由於依賴 Windows 原生 API,其配置較爲底層,需要直接編輯 cordis.patch.yml。

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

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

小夜