DeepSeek Harness 任務完成通知插件

當 DeepSeek Harness (DSH) 的 agent 轉入空閒、錯誤或阻塞狀態時,缺少外部反饋。該插件訂閱 DSH 內置的 agent/status 事件,在任務完成、出錯或阻塞時向你的設備推送通知。

安裝

使用本地文件路徑安裝插件。其他 profile 的安裝命令同理。

dsh plugin --profile web add file:/path/to/dsh-task-notify

若 pnpm v11 攔截供應鏈策略,需在命令末尾追加 --config.minimum-release-age=0。

配置

編輯 ~/.dsh/settings.yaml,在文件末尾添加 task-notify: 段。

task-notify:
  enabled: true
  notifyOn: [idle, error, blocked]   # 可選事件:idle error blocked goal-completed
  agents: root                        # root=只通知頂層代理 | all
  coalesceWindowMs: 2000              # 同會話窗口內合併重複通知
  desktop:
    enabled: auto                     # auto | on | off
    sound: true                       # macOS 播放 Glass 提示音;Windows 靜音開關
  format:
    time: short                       # hidden | short | full
    showDuration: true                # 負載攜帶 durationMs 時追加「用時 X」
  icons:
    enabled: true                     # 圖形圖標總開關
    urlTemplate: ""                   # 遠程圖標模板,如 https://host/icons/{event}.svg
  bark:
    enabled: false
    server: https://api.day.app
    deviceKey: "你的deviceKey"
  ntfy:
    enabled: false
    server: https://ntfy.sh
    topic: "只有你知道的隨機topic"
    token: ""
  serverchan:
    enabled: false
    sendKey: ""
  webhook:
    enabled: false
    url: ""
    headers: {}

配置項優先級從高到低爲:patch 顯式配置 > settings.yaml > 環境變量 > 默認值。

功能與渠道

該插件支持多平臺與多渠道分發,並在桌面端提供通知合併去重。

桌面端

  • macOS:調用 osascript 調用系統通知中心。受限於系統限制,僅支持純文本 + 提示音,無法自定義通知圖。
  • Windows:通過 PowerShell + WinRT 發送 Toast 通知,支持嵌入 PNG 圖標。

移動端與網絡

  • iOS:通過 Bark 推送。
  • Android / iOS:通過 ntfy 推送。
  • 微信:通過 Server醬 推送。
  • 通用:通過任意 Webhook 發送 JSON 載荷。

通知內容

正文由 composeBody 統一格式化爲:內容摘要 · 時間 · 用時 X。
* format.time 控制時間顯示:short=HH:mm,full=YYYY-MM-DD HH:mm:ss,hidden=隱藏。
* format.showDuration 控制是否顯示任務耗時。
* 時間與用時後綴不參與截斷,始終完整顯示。

圖標

  • 標題一律純文本,無 emoji。
  • 圖標資源在包內 assets/icons/,包含 SVG 矢量源與 64×64 PNG。
  • Windows:PNG 以 appLogoOverride 嵌入。
  • Bark / ntfy:配置 icons.urlTemplate 後自動附加 icon 參數。
  • Webhook:JSON 載荷附帶 icon 與內聯 iconSvg。
  • macOS:無自定義圖,僅純文本。

菜單與測試

交互式配置

不想手編 YAML,可運行交互菜單。菜單會自動備份原配置爲 settings.yaml.bak-<時間戳>。

npm run menu

自測

向所有啓用的渠道發送一條樣例通知。

node self-test.mjs

# 僅測試桌面通道
node self-test.mjs --channel desktop

冒煙測試

在真實環境中驗證安裝路徑與事件處理。

npm run smoke

注意事項

  • Node.js 版本:需安裝 Node.js ^22.19.0 || >=24。
  • 依賴:純 ESM 模塊,無構建步驟。
  • 運行權限:插件以當前 dsh 進程權限運行,安裝前請檢查源碼與許可證。
羽毛球分组比赛记分
小程序二维码

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

小夜