前言¶
在 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),不需要準備音頻素材。面板裏提供「試聽提示音」按鈕,可以直接聽效果。
通知雙通道¶
通知分兩條通道發出,靠心跳判重避免雙發:
- 頁面開着且已授權瀏覽器通知 → 走瀏覽器
Notification,點擊通知跳回對應會話。 - 頁面關着或未授權 → 宿主在 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 |
系統通知標題 |
典型用法¶
把面板和通知組合起來,完整流程如下:
- 在 DSH 裏啓動一個長任務,切去幹別的事。
- 任務本輪結束時聽到提示音,並收到瀏覽器通知(頁面開着)或 macOS 系統通知(頁面關着)。
- 打開側邊欄任務面板,先看「待回覆」列有沒有被擋住的會話,再用頂部 chip 切到「已完成未讀」列查看結果。
- 點通知或面板裏的條目,直接跳回對應會話繼續下一步。
如果想讓系統通知更醒目,把 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 的任務執行邏輯,只是把「完成」和「待回覆」這兩類容易錯過的事件推到你能看到的地方。如果你常被長任務和被擋住的會話中斷節奏,值得裝一個試試。