dsh-desktop-notifier:DSH 最小化時的審批通知與任務欄角標

前言

DeepSeek Harness(DSH)桌面版的審批卡片只出現在窗口內。你切去瀏覽器、全屏看視頻,或把窗口最小化後,待審批的請求無人看見,任務會一直掛着;一輪跑完也不一定能及時察覺。

dsh-desktop-notifier 是社區維護的客戶端插件(qmzh-zyz),把兩類提醒挪到 Windows 系統層:審批請求在桌面右下角彈通知,任務完成時在任務欄圖標上疊紅色數字角標並響提示音。DSH 在前臺時可按配置少打擾;切走後再提醒。

這是什麼

插件全名 dsh-desktop-notifier,歸類爲客戶端工具,當前 package 版本爲 0.2.0,MIT 許可。宿主側只用 Node 內置模塊,通知與角標通過系統自帶的 PowerShell 5.1 調用,不額外安裝運行時。

適用環境:Windows 10 1809+ 或 Windows 11;DeepSeek Harness 桌面版 0.2.1 及以上。非 Windows 平臺會靜默禁用。

目錄頁:https://www.skillhub.cn/plugins/qmzh-zyz/dsh-desktop-notifier
源碼:https://github.com/qmzh-zyz/dsh-desktop-notifier

核心功能

下面按事件說明插件已覈實的能力。

審批請求:右下角通知

監聽 approval/request(waterfall,prepend + global)。同一 callId 5 秒內去重;默認在 DSH 不在前臺時,於桌面右下角彈出通知,標題、工具名、申請原因一併展示。通知走 WinRT toast,可按 scenario 嘗試穿透「請勿打擾」與全屏;拿不到包標識時自動降級爲托盤氣泡。監聽器只透傳審批語義,不代爲回答。

任務完成:任務欄角標與提示音

在 session/event 的 turn/end(reason.kind === 'completed')路徑上計數。子代理回合不計入;短於 completion.minTurnMs 的回合可過濾。完成時可在任務欄 DSH 按鈕上顯示紅色數字角標(經 ITaskbarList3::SetOverlayIcon,非 Electron 自繪),並播放提示音;可選再彈一條完成 toast。切回 DSH 后角標可在約 2 秒內清掉。

其它行爲

  • 點擊通知可將 DSH 拉到前臺(dshnotifier: 協議,用戶註冊表,無需管理員)。
  • 審批與完成的聲音由插件合成,不依賴系統通知音。
  • 可選 debugLog 路徑,便於排查「沒彈」類問題。

安裝與啓用

方式一:由 DSH 安裝(推薦)

在 DSH「插件」頁選「從 Git 安裝」並填倉庫地址,或調用內置 plugin_manager:

install_bundle  target = github:qmzh-zyz/dsh-desktop-notifier

桌面端 profile 由客戶端管理;命令行 dsh plugin --profile desktop add ... 可能被拒絕,走插件頁或 plugin_manager 更穩。

方式二:本地源碼(開發 / 調試)

  1. 將倉庫複製到固定目錄,例如 %USERPROFILE%\.dsh\plugins\dsh-desktop-notifier。
  2. 在 %USERPROFILE%\.dsh\profiles\desktop 執行:
pnpm add link:$env:USERPROFILE\.dsh\plugins\dsh-desktop-notifier
  1. 把 "dsh-desktop-notifier" 追加到該 profile package.json 的 dsh.profile.bundles 數組末尾。
  2. 重開 DeepSeek Harness。

第 3 步不能省:pnpm add 只裝進 node_modules,未寫入 bundles 的包不會被加載。

裝完後可用倉庫內 demo 自檢(不必先重啓客戶端):

node tools/demo.mjs focus
node tools/demo.mjs toast approval
node tools/demo.mjs badge 3
node tools/demo.mjs chime

配置

在 profile 的 cordis.patch.yml 中按 id desktop-notifier 覆蓋,例如:

- id: desktop-notifier
  config:
    badgeColor: '#f5455c'
    approval:
      repeat: 2
      scenario: urgent
    completion:
      minTurnMs: 5000

常用項包括:enabled 總開關;windowMatch 匹配任務欄按鈕的進程名(默認 DeepSeek Harness);badgeColor 角標顏色;approval.skipWhenFocused 前臺時不彈審批;approval.repeat / repeatIntervalSec 未處理時的追加提醒;completion.minTurnMs 短回合不計數;appPath 在 DSH 已退出時用於點通知重新拉起。完整鍵與默認值見倉庫 README 配置表。

典型用法

按 README 描述的驗收路徑操作即可復現:

  1. 最小化 DSH,觸發需要審批的操作 → 右下角出現「DSH 需要你審批」類通知。
  2. 在 DSH 或通知流程中完成「允許一次」→ 任務繼續。
  3. 任務仍在後臺跑完、你停留在其它窗口 → 任務欄 DSH 圖標出現紅色角標並響提示音。
  4. 切回 DSH → 角標消失,計數清零。

需要強提醒審批時,可將 approval.scenario 設爲 urgent;希望過濾隨手改句造成的短回合完成提醒時,調高 completion.minTurnMs。

適用場景與注意

適合誰: 經常在 DSH 跑長任務、又會切換窗口的 Windows 用戶;希望審批與完成態不依賴「一直盯着 DSH 窗口」。

平臺與限制: 僅 Windows 具備任務欄角標與完整通知通道。托盤氣泡降級不能穿透獨佔全屏,也不支持點擊跳回;多實例 DSH 時助手默認按進程名匹配第一個窗口,可用 windowMatch 調整。通知文案目前以中文爲主,approval.title 可改。

安全與權限: 插件在 DSH 進程權限下運行,會寫用戶級協議註冊表並調用 PowerShell。安裝前建議閱讀源碼與 MIT 許可證,確認符合你的環境策略。DSH 插件生態以「一切皆插件」爲理念;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

卸載:從 dsh.profile.bundles 刪除 dsh-desktop-notifier,pnpm remove dsh-desktop-notifier,重開客戶端。

結尾

dsh-desktop-notifier 針對「窗口外看不見審批、不知道任務已跑完」做了系統層補強:審批 toast、完成角標與提示音,且不改動審批本身的處理邏輯。若你只想要通知或只要角標,README 中也列出了同類插件供組合或替換。

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

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

小夜