dsh-desktop-alerts:審批與任務完成時的 Windows 系統通知

前言

DeepSeek Harness(DSH)裏需要人工審批或提權時,審批卡片只出現在應用窗口內。切到瀏覽器、全屏看視頻,或系統開着「請勿打擾」時,卡片可能長時間無人看見,任務會一直掛着。某輪對話跑完,若窗口不在前臺,同樣容易錯過結束時機。

下面介紹社區插件 dsh-desktop-alerts(維護者 Gusheng-GS):把審批請求和任務完成事件轉成 Windows 原生 toast,在允許的系統場景下穿透勿擾與全屏;DSH 在前臺時不打擾;點擊通知可切回 DSH。插件分類爲客戶端,當前在 GitHub 上可見 2 stars;詳細說明與安裝以 倉庫 README 爲準。社區目錄頁:SkillHub 條目。

這是什麼

dsh-desktop-alerts 是 DeepSeek Harness 的 Windows 桌面通知插件(npm 包名 dsh-desktop-alerts,當前版本 0.5.2,MIT 許可證)。它監聽 DSH 的審批與回合結束事件,通過 PowerShell 5.1 調用系統 toast API 發通知,不改變審批語義;通知失敗只記日誌,不影響審批鏈路。

非 Windows 平臺插件會靜默禁用(系統沒有對應通知通道)。

環境要求

  • Windows 10 1809+ 或 Windows 11
  • DeepSeek Harness 桌面版 0.2.1+
  • 宿主側僅使用 Node 內置模塊;發通知依賴系統自帶的 PowerShell 5.1,無額外 npm 依賴

核心功能

審批通知

  • 穿透「請勿打擾」:Windows 11(22H2+)使用 scenario="urgent",Windows 10 使用 scenario="alarm"——這兩類是系統裏允許越過勿擾與專注助手規則的提醒之一。
  • 穿透全屏:專注助手「全屏時」規則通常不攔截 urgent / alarm(獨佔全屏的 DirectX 遊戲除外,見下文限制)。
  • 前臺不打擾:默認開啓「DSH 在前臺時不提醒」;通過渲染進程焦點心跳與 Win32 前臺窗口雙重判斷,只有切走後才彈。
  • 點擊切回 DSH:點擊橫幅或通知中心條目,將最小化或被擋住的 DSH 提到前臺;DSH 已退出時通過用戶級註冊的 dshalerts: 協議重新啓動,無需管理員權限。
  • 重複提醒:審批未處理時可按設置追加提醒;回答或取消後停止。
  • 提示音:可選鬧鐘聲(循環)、系統提示音、自定義音頻文件或靜音;響 1–60 秒後自動停止(聲音由 lib/sound.ps1 播放,toast 本體爲 silent)。

任務完成通知

每輪任務以 completed 結束時(不含子代理會話、不含 aborted 等),可單獨開關是否通知;正文帶對話標題,圖標爲綠色對勾,幾秒後自動收起。完成通知可用 toast 自帶的一聲系統提示音(非循環鬧鐘)。

通知中心

以 DeepSeek Harness 相關 AUMID(DeepSeek.Harness.DesktopAlerts)登記,通知留在操作中心,便於事後查看。

安裝與啓用

從 GitHub 安裝(推薦)

在 DSH「插件」頁選擇從 Git 安裝,或在桌面端執行:

dsh plugin add git+https://github.com/Gusheng-GS/dsh-desktop-alerts.git

若使用本地源碼開發,需複製到 %USERPROFILE%\.dsh\plugins\dsh-desktop-alerts,在 desktop profile 中 pnpm add link:...,並把 "dsh-desktop-alerts" 追加到該 profile package.json 的 dsh.profile.bundles 數組末尾,然後重啓 DSH。倉庫提供 node tools/deploy.mjs 可一次性完成複製、bundles 補全等步驟。

從舊名升級(0.4.x → 0.5.0)

0.4.2 及以前包名爲 dsh-approval-toast,0.5.0 起改名爲 dsh-desktop-alerts。先卸舊包再裝新包,避免兩條通知各彈一遍:

dsh plugin remove dsh-approval-toast
dsh plugin add dsh-desktop-alerts

舊配置與日誌會在首次啓動時遷移到新文件名;舊版 dshapproval: 協議與舊 AUMID 會被清理,通知中心裏舊版發出的條目點擊可能失效,可手動清除。

設置與診斷

打開 設置 → 桌面通知 即可配置總開關、前臺靜音、點擊激活、通知強度、提示音與時長、重複提醒次數與間隔、工具冷卻、文案,以及任務完成相關選項。頁面提供「測試審批通知」「測試完成通知」,會繞過焦點判斷立刻彈一條,用於確認系統通道是否正常。

配置文件與設置頁讀寫同一份:

%USERPROFILE%\.dsh\dsh-desktop-alerts.json

診斷日誌(每行 JSON,超過 256 KB 時保留最近約 400 行):

%USERPROFILE%\.dsh\dsh-desktop-alerts.log

插件未彈窗或設置頁未出現時,可先查看日誌中的 load / capture / approval / task 等記錄;設置頁「狀態」會分別顯示事件鉤子與服務鉤子的命中次數。

典型用法

  1. 按上文命令安裝並重啓 DSH,確認設置裏出現「桌面通知」分組。
  2. 保持默認「DSH 在前臺時不提醒」,切到其他窗口後觸發一次需審批的操作,觀察右下角 toast 與提示音是否符合預期。
  3. 點一次通知,確認 DSH 窗口回到前臺;若 DSH 已退出,確認能否被重新拉起。
  4. 跑完一輪對話後,若開啓了「任務完成時也通知」,應看到帶對話標題的完成 toast。
  5. 排查問題時用測試按鈕驗證系統層,並對照 dsh-desktop-alerts.log 與設置頁「上次結果」。

適用場景與注意

適合:主要在 Windows 上使用 DSH 桌面版、經常多窗口或全屏工作、希望審批與任務結束有系統級提醒的用戶。

運行方式:插件隨當前 DSH 進程加載,發通知與註冊協議均在用戶權限下完成;安裝前建議瀏覽 GitHub 源碼 與 MIT 許可證,自行評估是否滿足環境策略。

已知限制(摘自 README):

  • 僅 Windows 有系統通知通道。
  • 獨佔全屏 DirectX 遊戲裏橫幅可能被系統壓掉;無邊框全屏與普通全屏一般正常。
  • 若用戶在系統設置中徹底關閉本應用通知,toast 會被靜默丟棄。
  • 遠程會話或鎖屏下前臺判斷可能不準,會按「未在前臺」處理從而仍可能彈通知。
  • DSH 安裝路徑變更後,若點擊通知無法啓動,重啓一次 DSH 讓插件重寫 dshalerts: 註冊即可。

卸載示例:

cd $env:USERPROFILE\.dsh\profiles\desktop
pnpm remove dsh-desktop-alerts

再從 dsh.profile.bundles 刪除同名條目並重啓 DSH。

結尾

dsh-desktop-alerts 把 DSH 窗口內的審批與完成事件映射到 Windows 原生通知,在系統規則允許範圍內儘量穿透勿擾與全屏,並在你不在看 DSH 時再提醒;細節與更新見 CHANGELOG 與 Issues。

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

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

小夜