dsh-agent-notify:DSH Web GUI 的 Windows 系統通知插件

前言

DSH 的插件理念是「一切皆插件」。在 DSH Web GUI 裏運行 agent 時,任務完成、agent 提問、等待批准或計劃審閱,都可能發生在頁面後臺。如果窗口不在前臺,缺少系統級提醒就容易錯過處理時機。

下面介紹 dsh-agent-notify。它把這幾類事件接到 Windows 系統通知中心,用瀏覽器 Notification API 彈出通知氣泡,不依賴網頁內彈窗,也不使用合成音。

這是什麼

dsh-agent-notify 是 chidaic 維護的 DSH Web GUI 任務完成通知插件,許可證爲 MIT。

它解決的是 Web GUI 中 agent 狀態變化不夠醒目的問題:

  • agent 完成任務後發送系統通知。
  • agent 需要用戶回答、批准或審閱計劃時發送系統通知。
  • 點擊通知氣泡後聚焦頁面,並打開對應會話。

它是純瀏覽器端插件,host half 爲空,設置保存在瀏覽器 localStorage。

核心功能

通知觸發

插件會監聽以下狀態變化:

  • 會話從 running 變爲停止時,發送「任務完成」系統通知。
  • agent 提問,即 question 時,發送「需要你的回答」通知。
  • 出現 approval 或 plan-review 時,發送「需要你的批准」或「請審閱計劃」通知。

通知形式

通知通過瀏覽器 Notification API 發出,在 Windows 通知中心顯示爲氣泡。

具體行爲:

  • 聲音爲 Windows 系統通知音,由 Windows 設置控制。
  • 沒有網頁內彈窗。
  • 沒有合成音。
  • 沒有額外 UI 按鈕。
  • 點擊氣泡會聚焦頁面並打開對應會話。

通知不帶 tag。這是爲了避免 Windows 上 Chrome 對同 tag 通知只靜默更新、不彈新氣泡。

通知內容

通知內容包含:

  • 會話標題。
  • 該會話最後一條 assistant 回覆的前 90 字摘要。

其中,摘要僅在該會話窗口已打開時出現。

系統通知模式

插件支持三種系統通知模式:

  • 不發送
  • 後臺時發送
  • 始終發送

默認模式爲 始終發送。

授權方式

有兩種授權方式:

  • 首次點擊頁面時自動請求通知權限。
  • 在 DSH 官方設置界面的 任務提示 頁面手動授權。

設置入口

插件會接入 DSH 官方設置界面的一級頁面 任務提示。在該頁面可以:

  • 啓用或關閉通知。
  • 選擇是否包含子代理通知。
  • 選擇系統通知模式。
  • 查看權限狀態。
  • 手動授權。
  • 發送測試通知。

設置保存在 localStorage 的 dsh.agentNotify.settings.v3。

防誤報

插件對重複通知做了限制:

  • 頁面加載或重連後,第一個列表快照只作爲基線,不重放歷史完成事件。
  • 重連期間發生的完成,不會在恢復連接後誤報。
  • 同一 pending 狀態不重複通知。
  • 子代理會話默認不通知,可在設置中開啓。

瀏覽器端加載

插件爲純瀏覽器端實現,host half 爲空,無需構建工具。

瀏覽器端 bundle 變更後,刷新頁面即可加載最新 client.js。如果遇到舊緩存,可以用 Ctrl+Shift+R 硬刷新。

安裝與啓用

先安裝插件:

dsh plugin --profile web add dsh-agent-notify

如果從 GitHub 安裝,使用下面命令:

dsh plugin --profile web add github:chidaic/dsh-agent-notify

經過上面的步驟後,刷新頁面即可加載插件。

啓用通知時,先做這兩步:

  1. 首次點擊頁面時,允許瀏覽器通知權限。
  2. 進入 DSH 官方設置界面 → 任務提示,啓用通知並選擇系統通知模式。

典型用法

選擇通知模式

進入 DSH 官方設置界面 → 任務提示,選擇系統通知模式:

  • 不發送:不發送系統通知。
  • 後臺時發送:僅在頁面處於後臺時發送。
  • 始終發送:默認模式,始終發送系統通知。

授權

授權可以這樣操作:

  1. 首次點擊頁面時,瀏覽器會詢問通知權限,選擇允許。
  2. 如果之前拒絕了權限,也可以進入 DSH 官方設置界面 → 任務提示,在權限狀態區域手動授權。

診斷通知

如果通知沒有彈出,可以在設置頁使用 發送測試通知。

它會無視當前發送模式直接發送一條系統通知,並顯示結果。

如果顯示已發送,但 Windows 通知中心沒有彈出氣泡,檢查以下位置:

  • 瀏覽器站點權限。
  • Windows 系統通知開關。
  • Windows 通知聲音。
  • Windows 專注助手。

子代理通知

子代理會話默認不通知。

如果希望子代理會話也進入系統通知,需要進入 DSH 官方設置界面 → 任務提示,開啓包含子代理通知。

更新

瀏覽器端 bundle 變更後,刷新頁面即可。

如果頁面仍像舊版本一樣,用 Ctrl+Shift+R 硬刷新,避免舊緩存影響判斷。

適用場景與注意

適合在 DSH Web GUI 中運行 agent,並希望在任務完成、等待回答、等待批准時得到系統級提醒的使用者。

需要注意以下幾點:

  • 插件依賴瀏覽器 Notification API 與 Windows 系統通知設置。
  • 通知效果可能受瀏覽器站點權限、Windows 系統通知開關、通知聲音和專注助手影響。
  • 頁面加載或重連後不會重放歷史完成事件。
  • 子代理會話默認不通知。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與 MIT 許可證。

鏈接

GitHub 倉庫:

https://github.com/chidaic/dsh-agent-notify

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

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

小夜