dsh-ping-macos:DSH 在 macOS 上的回覆完成與待確認通知

前言

在 DeepSeek Harness(DSH)裏跑 agent 時,任務往往在後臺繼續執行。窗口切到其他應用後,很難憑肉眼判斷「回覆是否已經結束」或「是否出現了需要你審批、選方案、回答提問的 pending 交互」。常見做法是反覆切回 DSH 看會話列表,或自己寫腳本輪詢狀態——既打斷工作,又和 Harness 已有的事件模型脫節。

下面介紹社區插件 dsh-ping-macos(維護者 adamxu-git):在 macOS 上利用系統通知和標準提示音(Glass),在回覆跑完或需要你介入時提醒;點擊通知抬起窗口並切到對應會話。它不請求網絡、不做 Dock 角標或菜單欄圖標,定位是「最小可用」的通知層。

這是什麼

dsh-ping-macos 是 DSH 的 client + 宿主半插件:lib/client.js 在瀏覽器側訂閱會話與 UI 狀態;lib/index.js 在宿主側註冊 POST /__dsh-ping-macos/sound,用 afplay 播放 /System/Library/Sounds/Glass.aiff。配置保存在本機 localStorage,不聯網。

npm 包名與倉庫一致,當前資料中的版本爲 0.2.0(MIT)。package.json 標明與 DSH 0.2.1-rc.2 兼容;行爲依賴 sessions.list、uiSession.sessionStatus 等 0.2.x 快照形狀,宿主 API 變更時需插件跟進。

核心功能

插件監聽兩類事件(詳見倉庫 README 行爲表):

事件 觸發條件 通知表現
回覆完成 sessions.list 中某會話 running: true → false 「回覆完成 · 會話名」,普通橫幅
需要你確認 uiSession.sessionStatus 出現新的 pendingInteraction 「需要你確認 · 審批/方案/提問」,常駐提醒

其他已覈實行爲:

  • 子代理會話(origin: 'subagent' 或帶 parentId)默認靜音。
  • 前臺策略:取決於「設置 → 通知提醒」;默認「回覆完成」在窗口可見時不彈、「需要你確認」默認仍彈。
  • 合併完成:同一次列表更新裏多個 running → false 合併爲一條「N 個會話完成」;此類彙總通知點擊只抬窗,不切到單一會話。
  • 點擊通知:經隱藏 iframe 導航 dsh://open 抬起 Electron 窗口,並調用 sessions.open(id)(0.1.5)或 uiWorkspace.openSession(id)(0.1.6+);兩者皆無時僅抬窗。
  • 提示音:非 macOS 或宿主無 webServer 時靜默,通知仍可顯示。

設置頁路徑:設置 → 通知提醒——總開關、回覆完成策略(僅離開 / 總是 / 關閉)、待處理策略、提示音開關及測試按鈕。系統通知權限需在「系統設置 → 通知 → DeepSeek Harness」中允許。

安裝與啓用

DSH Desktop:插件 → 添加插件 → 搜索 dsh-ping-macos → 安裝 → Cmd+Q 完全退出後再打開。

Web 配置:

dsh plugin --profile web add dsh-ping-macos

裝完後重啓對應的 dsh web,並對頁面做硬刷新。

安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證;插件以當前 DSH 進程/頁面權限運行,僅在本機讀寫 localStorage 與調用宿主 sound 路由,無對外網絡請求。

典型用法與驗證

重啓後插件不再彈歡迎通知。可按 README 建議驗證:

  1. 將窗口切到其他應用,讓 agent 跑完一個任務,結束時應出現「回覆完成」類通知。
  2. 在 DevTools 控制台:
__dshPing.state()            // 綁定狀態、permission、記賬條數、通知句柄數、定時器狀態
__dshPing.test('done')       // 立即彈一條完成通知
__dshPing.test('attention')  // 立即彈一條待處理通知

點通知應抬起 DSH 並切換到對應會話(單會話完成通知);彙總完成通知僅抬窗。

卸載示例(資料中的桌面 profile 路徑,操作前請自行備份):

cp ~/.dsh/profiles/desktop/cordis.patch.yml.bak-20261029-203052 \
   ~/.dsh/profiles/desktop/cordis.patch.yml
rm -rf ~/.dsh/profiles/desktop/node_modules/dsh-ping-macos

然後重啓 DSH Desktop。

適用場景與注意

適合:在 macOS 上使用 DSH Desktop 或 Web,希望 agent 在後臺跑完或出現待確認交互時能被動提醒,且接受「僅系統橫幅 + Glass 提示音、無 Dock/菜單欄角標」的方案。

限制(倉庫「已知限制」摘要):

  • 頁面進程仍存活時才能提醒;完全退出 App 後無通知。
  • 多開 DSH 頁面/窗口時,每個頁面各跑一份 client,會各自提醒,設置也分屬各頁 localStorage。
  • 桌面端通知無審批按鈕(Service Worker 在 dsh-app:// 下不可用)。
  • 同一會話連續兩次完成會各彈一條(按 tag 去重,不合並同會話的多次完成)。

DSH 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區收錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-ping-macos 把 Harness 裏「會話結束」和「待你確認」兩類狀態變化,映射成 macOS 原生通知與可選提示音,並用 dsh://open 把點擊動作接回當前會話。若你需要在 macOS 上少切幾次窗口、又不願引入網絡或角標方案,可以從目錄或 GitHub 安裝後,用 __dshPing.test 與真實任務各驗一遍。

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

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

小夜