dsh-hybrid-notify:DSH 多通道通知插件

前言

在 DSH (DeepSeek Harness) 中開發或運行智能體時,會話可能持續很長時間,且用戶視線往往在瀏覽器其他標籤頁或應用中。若缺乏有效的通知機制,後臺任務完成、審批請求或錯誤信息可能被遺漏。

dsh-hybrid-notify 插件通過監聽窗口可見性,根據用戶當前是否在瀏覽器前臺,自動在頁面內 Toast、PWA 系統通知和瀏覽器通知之間切換,並使用 Web Audio API 合成音效,確保關鍵事件能夠被準確捕獲。

核心功能

該插件主要解決後臺運行時的消息觸達問題,核心能力包括:

  1. 三通道自動選擇:根據窗口可見性智能派發通知。
    • 頁面內 Toast:窗口前臺且可見時。
    • PWA 系統通知:窗口後臺且 PWA 通道可用時。
    • 瀏覽器通知:窗口後臺且未註冊 Service Worker 時的兜底方案。
  2. 合成音效:使用 Web Audio API(振盪器 + 包絡整形)實時合成音色,無需加載任何音頻文件。音效分爲成功、錯誤、警告、信息四個級別。
  3. 事件級與通道級開關:支持分別控制任務完成、子代理完成、審批請求等具體事件的開關,也支持獨立啓停三種通知渠道。
  4. 持久化與安全:配置持久化存儲,支持 HMR(熱重載)後狀態不丟失,並遵循瀏覽器的自動播放策略合規要求。

安裝與啓用

通過 DSH CLI 安裝該插件:

dsh plugin --profile web add dsh-hybrid-notify

或者從 GitHub 源碼安裝:

dsh plugin --profile web add github:john-walks-slow/dsh-hybrid-notify

安裝後,插件會自動集成到 DSH Web UI 中。

配置

在 DSH Web UI 中打開 設置 → 通知 進行配置。所有設置通過 localStorage 持久化存儲,鍵名爲 dsh.notify.config。

事件開關

插件支持對以下事件進行獨立控制:

事件類型 默認狀態 說明
任務完成 開 會話一輪 turn 結束(running → idle)
子代理完成 關 subagent 會話完成
審批請求 開 Agent 請求批准操作
用戶提問 開 Agent 向你提問
計劃評審請求 開 Plan 模式等待評審
Agent 出錯 開 Agent 遇到錯誤
後臺任務完成 關 後臺 bash 任務結束

注意:當前正在前臺查看的會話不會觸發通知。

音效設置

音效功能包含總開關、音量滑塊、前臺播放開關以及試聽按鈕。

注意事項

  1. 通知權限:PWA 與瀏覽器通知通道需要瀏覽器通知權限。首個後臺事件到達時會自動請求權限(僅當狀態爲 default 時);設置頁每個通道也有手動授權按鈕。頁面內 Toast 通道無需任何權限。
  2. PWA / Service Worker:PWA 通道的 Service Worker 由插件宿主端在 /plugins/dsh-hybrid-notify/sw.js 提供,不支持環境自動降級。
  3. 音效策略:受瀏覽器自動播放策略約束,AudioContext 在用戶第一次點擊或按鍵交互後解鎖。首次交互前不會有聲音。
  4. 零網絡訪問:插件不發起任何外部請求,不做任何上報,所有通知內容來自本地 DSH 會話快照。
  5. 兼容性:需要支持 Notification API 與 Web Audio API 的現代瀏覽器。部分移動瀏覽器不支持 new Notification(),會靜默降級爲頁面內 Toast。
  6. 構建要求:從源碼構建需 Node.js ≥ 18。

總結

dsh-hybrid-notify 爲 DSH 提供了一套完整的後臺消息觸達方案,通過智能渠道切換和合成音效,減少了用戶頻繁查看標籤頁的需求,適合需要在長時間會話中保持信息敏感度的開發者與用戶。

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

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

小夜