dsh-windows-notifications:DSH Web 的 Windows 桌面通知插件

前言

用 DeepSeek Harness(DSH)跑長任務時,人不會一直停在 DSH Web 頁面裏。切到別的窗口寫代碼、看文檔,等回過頭才發現任務早就完成,或者停在等批准的狀態,中間空轉了很久。DSH Web 本身的事件只呈現在頁面內,標籤頁不開着盯,就容易漏。

下面介紹的 dsh-windows-notifications 插件補的就是這一段:保持 DSH 標籤頁打開,你在其他應用裏工作時,任務結果和需要關注的事件仍能以 Windows 桌面通知、頁內卡片和可選提示音的形式到達。

這是什麼

dsh-windows-notifications 是一個面向 DeepSeek Harness Web 的插件,由 lsq-dsh-plugins 維護,npm 包名爲 @lsq64737/dsh-windows-notifications,當前版本 0.1.1,許可證爲 MIT。

按照 DSH「一切皆插件」的思路,這類 Web 端能力通過插件接入 DSH Web,而不需要改 Harness 本體。它做的事情很集中:把 DSH 的任務事件映射成桌面通知或頁內卡片,並處理「該用哪種形式」的判斷。

核心功能

三種呈現形式:

1、Windows 桌面通知,基於瀏覽器 Notification API。點擊通知會把 DSH 聚焦並打開相關 Session。
2、DSH 風格的頁內通知卡片。
3、可選的合成提示音,由 Web Audio 生成,不下載音頻文件。

同一事件默認只在「桌面通知」和「頁內卡片」中呈現其一,聲音獨立,可伴隨任一形式。默認按瀏覽器可見性與焦點決定:

DSH 狀態 默認呈現
標籤頁可見且瀏覽器窗口在前臺 DSH 頁內卡片
DSH 顯示在另一臺顯示器、焦點在其他應用 Windows 通知
其他瀏覽器標籤頁在前臺或瀏覽器最小化 Windows 通知
Windows 通知不可用或被拒絕 回退爲頁內卡片(啓用頁內通知時)

判斷依據是瀏覽器的可見性與焦點,不是顯示器數量。如果關閉「Only while DSH is inactive」,DSH 在前臺時也可能彈出 Windows 通知;同一事件一旦成功投遞了 Windows 通知,頁內卡片仍會被抑制。

通知覆蓋的事件:

  • 任務正常完成。
  • 任務失敗、中止、被阻塞、被打斷或達到輸出上限。
  • 等待批准、計劃審覈或回答問題。
  • 子代理的完成與失敗通知(可選,默認關閉)。

可靠性方面有兩個值得注意的設計:

1、插件讀取持久的 Harness turn/end 結果判斷完成,而不是從瞬時的運行狀態變化推斷。
2、頁面初次加載、刷新與重連時會建立靜默基線,舊事件不會重放爲新通知。

另外,插件不使用第三方通知服務,事件處理留在 DSH Web、瀏覽器 Notification API、Web Audio 和 Windows 內。

安裝與啓用

安裝命令如下,作用是把公共包安裝到 DSH Web 的 profile:

dsh plugin --profile web add @lsq64737/dsh-windows-notifications

如果 DSH Web 已在運行,安裝後需要重啓。重複運行同一條 add 命令可以更新已有安裝。

卸載:

dsh plugin --profile web remove @lsq64737/dsh-windows-notifications

首次使用與設置

經過上面的安裝步驟後,首次使用按下面順序操作:

1、打開 DSH Web,進入 Settings → Notifications。
2、選擇 Allow notifications。
3、接受瀏覽器的通知權限提示。
4、依次運行 Test Windows notification、Test in-page notification、Test sound,確認三種形式都正常。

注意:瀏覽器要求用戶手勢才能請求權限,插件在頁面加載時不會自動彈出權限提示。如果之前拒絕過權限,需要先在瀏覽器站點權限設置中恢復,再重新測試。

Settings → Notifications 提供的開關及默認值:

設置項 默認 作用
Enable notifications On 任務通知總開關
Windows notifications On 使用瀏覽器 Notification API
Only while DSH is inactive On 只在 DSH 非活動時彈系統通知
In-page notifications On 未投遞系統通知時顯示頁內卡片
Notification sound On 播放 Web Audio 合成的提示音
Volume 55% 提示音音量
Task completed On 任務成功完成的通知
Failures and interruptions On 非正常結束的通知
Waiting for your action On 批准、計劃審覈、提問的通知
Subagent notifications Off 包含子代理的完成與失敗事件

Windows 通知、頁內卡片、聲音各有獨立的測試動作。同類測試會替換未完成的測試而不是排隊;真實任務通知保持到達順序。

適用場景與注意

適合的人羣:在 Windows 上通過瀏覽器使用 DSH Web、經常在任務運行期間切去其他應用工作的開發者。如果始終停留在 DSH 頁面內,事件會按默認設置以頁內卡片呈現。

使用前需要清楚這些邊界:

1、DSH 標籤頁必須保持打開,關閉標籤頁或瀏覽器會停止所有通知處理。
2、Windows 通知要求瀏覽器和頁面來源在允許的安全上下文中暴露 Notification API。
3、Chrome/Edge 的站點權限與 Windows 免打擾設置仍然有效,插件無法繞過。
4、Windows 控制系統通知的邊框、位置與時長,插件只提供圖標、標題、消息和點擊動作。
5、瀏覽器可能對長期未使用的後臺標籤頁做節流或凍結,即使 DSH 連接看似活躍,通知也可能延遲。
6、通知文本可能包含 DSH Session 標題,按系統通知設置,這些內容對 Windows 和鎖屏可見。
7、排查問題時,操作類消息在 Harness 日誌或瀏覽器控制檯使用 windows-notifications: 前綴,覆蓋權限、投遞、設置與音頻故障,不記錄憑據。

安全提示:插件以當前 dsh 進程的權限運行,安裝前建議先檢查源碼與許可證。本項目源碼在 GitHub 公開,許可證爲 MIT,可以自行審閱後再安裝。

如果需要參與開發,要求 Node.js 24 或更新版本以及兼容的 DSH 開發工作區,標準流程是:

npm ci
npm run typecheck
npm test
npm run build

結尾

dsh-windows-notifications 解決的問題不大但很具體:讓在 Windows 上使用 DSH Web 的人切窗口工作時,不漏掉任務完成和等待操作的事件。裝好插件、完成一次權限授權和三項測試,之後就可以放心把 DSH 留在後臺。

  • 社區目錄頁:https://www.skillhub.cn/plugins/lsq-dsh-plugins/dsh-windows-notifications
  • GitHub:https://github.com/lsq-dsh-plugins/dsh-windows-notifications

說明:skillhub.cn 是獨立的社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜