dsh-task-notify:DeepSeek Harness 任務通知插件

前言

DSH 會話在運行中會持續產生多類需要人工關注的事件:需要審批、等待回覆、後臺任務結束、子任務結束、工作流結束。如果只在當前網頁裏查看狀態,切換窗口後容易漏掉。

dsh-task-notify 把這些事件推送到瀏覽器系統通知中心,並提供應用內鈴鐺面板、Toast 浮層和清理入口,用於在離開當前頁面時仍能感知關鍵狀態。

這是什麼

dsh-task-notifykaotusi 維護的 DeepSeek Harness(DSH)客戶端插件,許可證爲 MIT。

它解決的是 DSH 運行過程中的通知問題:將審批、回覆等待、任務結束等事件推送到系統通知中心,並保留應用內鈴鐺面板、Toast、診斷狀態與清理按鈕。

核心功能

下面介紹它已提供的主要能力。

  • 監聽以下事件:
  • approval/request
  • agent/turn-stopping
  • subagent/end
  • workflow/end
  • 後臺任務 onJobDone
  • 將未讀通知推送到瀏覽器系統通知中心,調用 Notification API,並播放分類型 Web Audio 合成提示音。
  • 提供應用內鈴鐺面板、Toast 浮層、測試通知、重發、全部已讀與清理按鈕。
  • 面板頂部顯示系統通知權限、掛載與輪詢狀態診斷行。
  • 宿主組合行監聽所有會話事件,進程內隊列上限 300 條。
  • 客戶端通過 /api/taskNotify/pull 等接口輪詢,使用 localStorage 去重,每輪最多推送 3 條新通知。
  • 註冊 taskNotify Remote 服務,包括 pullackclearpurgediag
  • 註冊 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-protocol
  • react
  • zod
  • 客戶端 RPC 刻意走底層 connection seam,例如 /api/taskNotify/pull。不要回退爲 ctx.remote.<ns> 調用。

結尾

dsh-task-notify 將 DSH 中需要人工關注的事件擴展爲系統通知,同時保留應用內面板、Toast、診斷與清理入口。

倉庫地址:

https://github.com/kaotusi/dsh-task-notify
羽毛球分组比赛记分
小程序二维码

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

小夜