前言¶
DSH 會話在運行中會持續產生多類需要人工關注的事件:需要審批、等待回覆、後臺任務結束、子任務結束、工作流結束。如果只在當前網頁裏查看狀態,切換窗口後容易漏掉。
dsh-task-notify 把這些事件推送到瀏覽器系統通知中心,並提供應用內鈴鐺面板、Toast 浮層和清理入口,用於在離開當前頁面時仍能感知關鍵狀態。
這是什麼¶
dsh-task-notify 是 kaotusi 維護的 DeepSeek Harness(DSH)客戶端插件,許可證爲 MIT。
它解決的是 DSH 運行過程中的通知問題:將審批、回覆等待、任務結束等事件推送到系統通知中心,並保留應用內鈴鐺面板、Toast、診斷狀態與清理按鈕。
核心功能¶
下面介紹它已提供的主要能力。
- 監聽以下事件:
approval/requestagent/turn-stoppingsubagent/endworkflow/end- 後臺任務
onJobDone - 將未讀通知推送到瀏覽器系統通知中心,調用
NotificationAPI,並播放分類型 Web Audio 合成提示音。 - 提供應用內鈴鐺面板、Toast 浮層、測試通知、重發、全部已讀與清理按鈕。
- 面板頂部顯示系統通知權限、掛載與輪詢狀態診斷行。
- 宿主組合行監聽所有會話事件,進程內隊列上限 300 條。
- 客戶端通過
/api/taskNotify/pull等接口輪詢,使用localStorage去重,每輪最多推送 3 條新通知。 - 註冊
taskNotifyRemote 服務,包括pull、ack、clear、purge、diag。 - 註冊
ntfy_status診斷工具。 - 提供中 / 英雙語界面,跟隨 DSH locale。
安裝與啓用¶
安裝前需要 Node.js 和 pnpm。dsh plugin 底層會調用 pnpm。
先運行下面命令安裝插件:
dsh plugin --profile web add git+https://github.com/kaotusi/dsh-task-notify.git
如果實際 profile 名不是 web,把 --profile web 換成實際 profile 名。
安裝後重啓 dsh web,然後刷新頁面。
如果所在網絡訪問 github.com 不穩定,可以先配置代理,或按倉庫 README 使用手動拷貝方式。手動拷貝時,目錄名需要嚴格爲 dsh-task-notify,並位於 @deepseek-ai/ 作用域下。
典型用法¶
啓用通知權限:
1、重啓 dsh web 並刷新頁面。
2、點擊側欄底部鈴鐺。
3、在瀏覽器通知授權框中選擇允許。
4、確認面板頂部診斷行顯示 系統通知: granted。
驗證通知:
1、觸發一次後臺任務、審批、子任務或工作流。
2、查看瀏覽器系統通知中心是否彈出對應橫幅。
3、確認提示音是否播放。
4、在應用內鈴鐺面板中查看通知列表。
清理通知:
點擊面板中的「清理」按鈕,可清空面板與宿主隊列中的全部通知。
適用場景與注意¶
適合在 DSH 中運行需要審批、等待回覆、後臺任務、子任務或工作流的場景,尤其是頁面不在前臺、窗口切換較多、需要及時發現“需要我操作”的狀態。
使用前注意:
- 插件以當前
dsh進程權限運行。安裝前應檢查源碼、依賴和許可證。 - 需要瀏覽器通知權限。授權後診斷行應顯示
granted。 - 宿主隊列上限爲 300 條。
- 客戶端每輪最多推送 3 條新通知,已推送 ID 用
localStorage去重。 - 修改插件文件後需要重啓 Harness 生效;typert 清單按包名緩存。
- peerDependencies 包括:
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocolreactzod- 客戶端 RPC 刻意走底層 connection seam,例如
/api/taskNotify/pull。不要回退爲ctx.remote.<ns>調用。
結尾¶
dsh-task-notify 將 DSH 中需要人工關注的事件擴展爲系統通知,同時保留應用內面板、Toast、診斷與清理入口。
倉庫地址:
https://github.com/kaotusi/dsh-task-notify