DeepSeek Harness 插件:dsh-macos-notify

前言

DeepSeek Harness 運行在 Node.js 環境中。在 macOS 上,命令行輸出與桌面交互有限。dsh-macos-notify 插件通過原生通知中心將 Harness 的運行狀態反饋到系統桌面,並提供了一套完整的過濾與音效配置機制。

插件介紹

這個插件提供原生 macOS 通知,支持按事件類型播放不同音效、通知過濾、多任務合併以及 DSH Web UI 內的一級設置頁面。由 CrombastiC 維護,許可證爲 MIT。

安裝與啓用

安裝只需執行以下命令:

npx -y @deepseek-ai/dsh plugin --profile web add dsh-macos-notify

安裝後,在 DSH 的 Web 界面設置導航中打開 Settings → macOS notifications。

若要移除插件,執行:

npx -y @deepseek-ai/dsh plugin --profile web remove dsh-macos-notify

核心功能

事件通知與音效

插件會在以下情況觸發通知中心彈窗:
* 任務回合完成
* 任務失敗或被阻塞
* 任務等待批准
* 任務被中止

針對不同事件,支持設置不同的系統音效。任何事件都可以被靜音。在設置頁面的音效選擇器中,可以使用系統自帶音效,並通過 afplay 命令在頁面內預覽。支持導入自定義音效,文件會被轉換爲 AIFF 格式,限制爲 5MB 大小和 10 秒時長,最多管理 20 個文件,總容量限制 50MB,存儲在 ~/Library/Sounds。

過濾與合併策略

爲了避免並行任務淹沒通知中心,插件內置了合併機制:
* 合併窗口:默認 1.5 秒的合併窗口,在此期間的結果會合併爲一條通知。
* 摘要模式:可選的定期摘要功能。
* 重複錯誤抑制:可配置冷卻窗口,抑制同一會話內的重複錯誤通知。

項目規則與過濾

通過項目路徑規則,可以精細化控制通知行爲:
* 靜音:完全屏蔽指定路徑下的所有通知。
* 僅錯誤:僅允許錯誤、阻塞事件和批准請求的通知。
* 重要項目: bypass 最小持續時間、焦點、空閒時間、安靜時段和臨時暫停等過濾器。

此外,還支持:
* 最小回合時長過濾:避免回覆時間過短(默認 30 秒)觸發通知。
* Web 標籤頁焦點抑制:當 DSH Web 界面有標籤頁處於聚焦狀態時,抑制完成通知。
* HID 空閒時間 gating:要求鍵盤或鼠標空閒一定時間(默認 0 秒)後才發送完成通知。

安靜時段與診斷

  • 安靜時段:支持每日的本地時間安靜時段,並可選擇在安靜時段內繼續發送錯誤和批准通知。
  • 臨時暫停:支持自定義時長的臨時暫停,並顯示剩餘時間。
  • 通知診斷:設置頁面會記錄最近 50 條決策(發送、排隊、抑制、失敗)及原因,數據持久化至 ~/Library/Application Support/dsh-macos-notify/state.json,並在重啓後保持。

終端支持

插件支持 OSC 9 通知協議,兼容 iTerm2、WezTerm、Kitty、Ghostty、Warp 等終端,以及通過 DCS passthrough 支持的 tmux 會話。

注意事項

  • 系統限制:插件僅支持 macOS。原生通知依賴 osascript,自定義音效導入依賴 macOS 音頻工具。
  • 音效行爲差異:在 OSC 9 渠道下,終端控制音效的播放與否及方式,此時忽略插件內的單事件音效選擇。
  • Web 設置通道:Web 設置頁面使用受信任的 /macos-notify RPC 通道,這是由於當前 DSH Web 設置代理對內置設置有命名空間白名單限制。
  • 音效管理:僅 v0.2.0 及之後導入的音效會被標記爲“管理音效”。手動複製到 ~/Library/Sounds 的舊文件在刪除插件後仍會保留,需手動清理。

結語

該插件解決了 DSH 在 macOS 上缺乏原生反饋的問題,通過豐富的過濾和音效配置,讓任務狀態通知更加可控。源碼與目錄可訪問:[GitHub 鏈接]。

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

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

小夜