polunzh/dsh-task-notifier:任務完成時響鈴並通知的任務通知臺

前言

在 DeepSeek Harness(DSH)裏跑長任務,很容易切去幹別的,回來才發現早就跑完了;更常見的是 Agent 正在等你提問回覆、計劃審閱或審批,你卻一時想不起來是哪個會話被擋住了。下面介紹的插件「任務通知臺」polunzh/dsh-task-notifier 解決的就是這件事:會話一輪結束時合成提示音、發瀏覽器或系統通知,並提供側邊欄三列看板,便於篩選待回覆、運行中與已完成未讀的任務。

定位

  • 類型:DSH Web 插件,包名 @polunzh/dsh-task-notifier,當前版本 1.2.0。
  • 維護者:polunzh;GitHub 星標 0;許可證 MIT。
  • 依賴:engines.dsh 要求 >= 0.2.0-rc.2,Node >= 20。
  • 解決什麼:把「任務完成」和「正在等你處理」這兩類事件推到你能看到的位置,而不是讓你自己翻會話列表。

核心功能

會話結束提示音

任意會話一輪結束時,瀏覽器端合成一段上行提示音(G5→C6),不需要準備音頻素材。面板裏提供「試聽提示音」按鈕,可以直接聽效果。

通知雙通道

通知分兩條通道發出,靠心跳判重避免雙發:

  1. 頁面開着且已授權瀏覽器通知 → 走瀏覽器 Notification,點擊通知跳回對應會話。
  2. 頁面關着或未授權 → 宿主在 macOS 上用 osascript 彈系統通知。

待回覆狀態

當 Agent 向你提問、等待計劃審閱或等待審批時,側邊欄圖標亮起琥珀色脈衝點,面板「待回覆」列置頂提示,點開直接回到那個在等你決定的會話。

三列看板面板

側邊欄圖標(帶未讀角標)打開任務面板,一屏同時展示三列:

  • 待回覆:在等你輸入的會話。
  • 運行中:當前正在執行的任務。
  • 已完成未讀:跑完但你還沒點開看過的任務。

頂部 chip 可以單獨篩選某一列,底部「更早完成」可展開歷史記錄。面板支持按標題搜索、全部標爲已讀、試聽提示音、試發系統通知。

未讀不丟

狀態寫在 $DSH_HOME/storages/dsh-task-notifier/state.json,重啓後仍在。目錄權限 0700,文件權限 0600。

中英雙語

面板與系統通知文案跟隨宿主語言(zh / en)。

安裝與啓用

四種安裝方式,按使用場景選擇。

方式一:開放插件市場(推薦,可在市場點贊)

在 DSH 裏進入「插件 → 實驗性插件」,打開「自定義插件市場」,再進「發現 → 添加索引源」,粘貼:

https://dshopen.org/index.json

之後搜索「任務通知臺 / Task Notifier」安裝。該市場分類爲「工作流與協作」,插件已通過源碼級驗證。市場頁見 dshopen 插件頁。

方式二:自建索引安裝(可自動檢測更新)

同樣在「發現 → 添加索引源」處粘貼:

https://dsh.127.dev/index.json

有新版本時列表會顯示可更新,卸載在「已安裝」裏完成。索引每 6 小時隨 npm 刷新,源碼見 dsh-plugins-index。

方式三:npm 安裝

dsh plugin --profile desktop add @polunzh/dsh-task-notifier

方式四:本地目錄安裝(開發調試)

在 DSH 裏使用 plugin_manager 的 install_bundle,target 填本倉庫的絕對路徑。

配置

配置項全部可以省略,寫在 profile 的 cordis.patch.yml 裏即可:

- insert:
    - id: polunzh-task-notifier
      name: '@polunzh/dsh-task-notifier'
      config:
        osNotify: auto            # auto | always | off
        sound: true               # 瀏覽器端提示音開關
        osSound: Glass            # macOS 系統提示音名
        osTitle: DeepSeek Harness # 系統通知標題
字段 默認 說明
osNotify auto auto=頁面在線交給瀏覽器通知、離線兜底系統通知;always=恆發系統通知;off=不發
sound true 瀏覽器合成提示音
osSound Glass macOS 自帶提示音名(Glass / Ping / Pop 等)
osTitle DeepSeek Harness 系統通知標題

典型用法

把面板和通知組合起來,完整流程如下:

  1. 在 DSH 裏啓動一個長任務,切去幹別的事。
  2. 任務本輪結束時聽到提示音,並收到瀏覽器通知(頁面開着)或 macOS 系統通知(頁面關着)。
  3. 打開側邊欄任務面板,先看「待回覆」列有沒有被擋住的會話,再用頂部 chip 切到「已完成未讀」列查看結果。
  4. 點通知或面板裏的條目,直接跳回對應會話繼續下一步。

如果想讓系統通知更醒目,把 osNotify 設爲 always,再用 osSound 換一種提示音名;如果完全不想被打擾,osNotify: off 並 sound: false。

適用場景與注意

適用場景:

  • 常在 DSH 裏跑長任務,希望第一時間知道完成。
  • 會話被 Agent 卡等回覆、審閱、審批,需要快速定位。
  • 使用 Web UI 跨平臺訪問,且主要在 macOS 上收到系統通知。

注意事項:

  • 插件以當前 dsh 進程的權限運行,啓用前應檢查源碼與 MIT 許可證,尤其是從第三方索引源安裝時。
  • 系統通知目前僅支持 macOS(osascript),其他平臺只發瀏覽器通知。
  • 瀏覽器通知需要用戶手動點擊授權,插件不會在後臺自動請求。
  • 隱私方面:插件沒有出站請求、遙測或遠程資源,會話標題只寫本機;不讀取 ~/.dsh/.credentials.yaml、.env、keychain 和 SSH key;package.json 中沒有 preinstall/postinstall/prepare 等安裝期腳本。
  • 從 1.1.1 起,瀏覽器模塊 id 改爲包名 @polunzh/dsh-task-notifier,patch row id 改爲 polunzh-task-notifier。如果你之前用 link: 或 1.1.0 及更早版本裝過,請只保留一份:先在「插件 → 已安裝」卸載舊的,再裝新版本。

結尾

任務通知臺不改變 DSH 的任務執行邏輯,只是把「完成」和「待回覆」這兩類容易錯過的事件推到你能看到的地方。如果你常被長任務和被擋住的會話中斷節奏,值得裝一個試試。

目錄頁:skillhub 目錄頁;開源倉庫:GitHub: polunzh/dsh-task-notifier。

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

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

小夜