前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,審批卡片、定時提醒和任務完成往往發生在當前標籤頁之外:窗口失焦、切到其他應用,或者整頁關掉後,只靠頁面內提示很容易漏掉。社區裏另有獨立通知類插件;dsh-notify-bridge 走另一條路——自帶通知引擎,並把審批、日程、待辦和 Token 用量橋接到 Discord Bot,便於離席時仍能處理與彙總。
下面按定位、能力、安裝配置和注意點介紹該插件。事實以 GitHub 倉庫 README 爲準;維護者爲 harienlook,SkillHub 分類爲客戶端。
這是什麼¶
dsh-notify-bridge 是 DSH 的通知與 Discord 轉發插件:在客戶端側提供桌面通知、提示音、標籤頁標題標記和審批快捷按鈕;在宿主側把審批、定時任務提醒、待辦摘要、/goal 開始提示等轉發到 Discord,並在已執行任務的提醒末尾附上本次任務的 Token 用量。
README 明確寫:完全獨立實現,不依賴 dsh-notify-me;兩者可共存,互不影響。 許可證 MIT,當前包版本 0.1.0。運行要求:DSH Desktop 0.2.2-rc.1(桌面/Web 均可)、Node ≥ 20;使用 Discord 轉發時需自行準備 Bot Token、頻道 ID 與用戶 ID。
獨立通知引擎¶
設置 → 通知設置 → 通知提醒 由插件自帶引擎驅動,無需再裝其他通知插件。配置存在 localStorage[dshNotifyBridge.config],與 dsh-notify-me 的配置隔離。
觸發源來自 DSH uiSession 的待處理交互(審批、提問、計劃複覈)以及 sessionStatus.completionUnread 完成標記;插件訂閱會話列表快照做去重與標題解析。
提醒方式包括:右上角頁內 toast(審批類帶「同意 / 拒絕」,直接調用 DSH answer('allowed-once' | 'rejected'))、系統通知(Windows 通知中心)、WebAudio 雙音提示。標籤頁標題用 ● 表示待處理、✓ 表示完成未讀,讀後恢復。
離席策略可按配置選擇:background 僅在離開時提醒,smart 跳過當前會話,always 總是提醒。默認忽略子代理會話的完成提醒。通知語言支持 auto、簡體中文與 English。
審批橋與 Discord 轉發¶
審批橋:頁面有實時客戶端時走 DSH 原生審批卡片;頁面關閉時發 Discord 卡片,點擊後真實結算爲 allowed-once / rejected;超時爲 unavailable,中斷爲 cancelled。審批模式可設爲 auto(在線原生、離線 Discord)或 always(總是 Discord)。
定時任務:轉發 DSH 原生 schedule 的單條與批量提醒(提醒本身不附 Token,任務尚未執行)。
任務完成:turn/end 推送完成摘要並附本次任務 Token;定時任務執行完成後同樣附 Token。
待辦摘要:每天固定時間讀取 dsh-memory-evolve 的待辦文件,只發未完成項;空列表不發。
Goal:檢測 goal/change 的 create,發送「任務開始執行」提示(不附 Token)。
Token 用量:每條已執行提醒末尾追加「本次任務 / 會話累計 / 本日」,數據來自 assistant/message.usage,並用 DSH tokenUsage 投影校正;未執行的定時任務、待辦摘要與 goal 開始提示不附 Token。
除 Discord Bot 外,README 還列出多通道:Discord webhook、Bark、Gotify、飛書、ServerChan、WxPusher、自定義 webhook(HMAC 簽名)。Bot 就緒後會在頻道發一條按鈕控制面板(狀態 / Tokens / 任務 / 記憶包),默認不註冊斜槓命令。
安裝與啓用¶
安裝後必須把 dsh-notify-bridge 加入 dsh.profile.bundles,並完整重啓 DSH Desktop(含托盤退出)。
方式一:從 GitHub 安裝(推薦)¶
在 desktop profile 的 package.json 中增加依賴與 bundle:
{
"dependencies": {
"dsh-notify-bridge": "git+https://github.com/harienlook/dsh-notify-bridge.git"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-notify-bridge"]
}
}
}
在 profile 目錄執行 pnpm install,再重啓 DSH Desktop。
方式二:本地 link(開發用)¶
"dsh-notify-bridge": "link:<你的工作區>/dsh-notify-bridge"
方式三:Releases 的 tgz¶
到 Releases 下載 dsh-notify-bridge-0.1.0.tgz:
cd ~/.dsh/profiles/desktop
pnpm add ~/Downloads/dsh-notify-bridge-0.1.0.tgz
同樣需把 bundle 寫入 profile 並重啓。
配置¶
重啓後打開 DSH 設置 → 通知設置。通知提醒 Tab 修改後即時生效;Discord Tab 保存後需重啓 DSH Desktop 才生效。配置寫入 ~/.dsh/notify-bridge/config.json;Bot Token 寫入 ~/.dsh/notify-bridge/discord.json,設置頁不回顯 Token。
通知提醒 Tab(節選)¶
| 字段 | 說明 |
|---|---|
| 啓用提醒 | 總開關 |
| 提示音 / 音量 | WebAudio 雙音 |
| 審批快捷按鈕 | toast 上「同意 / 拒絕」 |
| 回覆完成 | background / smart / always |
| 離開判定(分鐘) | 無輸入多久算離開 |
| 測試按鈕 | 立即彈測試通知 |
Discord Tab(節選)¶
| 字段 | 說明 |
|---|---|
| Bot Token | 留空表示不修改已存 Token |
| 頻道 ID | 通知、控制面板、審批卡片 |
| 你的用戶 ID | 限制誰可點審批與查詢 |
| 代理 | 僅 HTTP/HTTPS;示例 http://127.0.0.1:7897 |
| 審批模式 | auto / always |
| 轉發開關 | 回覆完成、審批、goal、定時任務、待辦摘要 |
| 待辦時間 | 24 小時制 HH:MM |
| Token 時區 | 本日統計與待辦日期 |
環境變量 DSH_NOTIFY_BRIDGE_PROXY 可作代理兜底(顯式配置優先)。插件不會自動讀取系統代理或 HTTP_PROXY;socks5 不支持,非法代理會導致 Bot 不啓動並在健康頁報錯。
Discord 準備(簡要步驟)¶
- Discord Developer Portal 創建應用 → Bot → Reset Token。
- OAuth2 URL Generator:
scope=bot,permissions=52224(View Channels、Send Messages、Embed Links、Attach Files),邀請到服務器。 - 開啓 Developer Mode 後複製頻道 ID、你的用戶 ID。
- 在 DSH 設置 → 通知設置 → Discord 粘貼 Token、頻道 ID、用戶 ID。
健康頁與自測¶
在 loopback 上提供診斷與日誌(端口爲當前 DSH Web 端口):
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/health
http://127.0.0.1:<DSH Web 端口>/__dsh-notify-bridge/logs?limit=50
健康 JSON 中的 clientDebug 可判斷設置頁客戶端 bundle 是否執行;stage = registered 表示設置頁已註冊。Proxy 卡片會標明代理來源或錯誤,便於排查 Discord 連不上問題。
適用場景與注意¶
適合誰:需要在離席或關頁時仍能收到審批與任務結果、並希望把摘要彙總到 Discord(或配置的其他 webhook 通道)的 DSH 用戶;本地仍想要系統通知、提示音和標題角標,且不想依賴 dsh-notify-me 的單插件方案。
運行與安全:插件以當前 DSH 進程權限運行,會讀寫 ~/.dsh/notify-bridge/ 下配置與狀態;安裝前宜自行審閱 源碼與 MIT 許可證。健康路由與設置 API 僅允許 loopback;Token 不進日誌與健康頁。
已知邊界(來自 README):Discord 側需能訪問 discord.com,國內環境常需正確配置 HTTP 代理;/goal 開始提示依賴 DSH goal/change 事件,其他插件替換 goal 命令時可能收不到;「記憶包」會把 ~/.dsh/memories 打成 ZIP 發到當前頻道,公開頻道勿點;系統通知上的快捷審批在頁內 toast,而非 OS 通知按鈕本身。
DSH 生態主張「一切皆插件」;SkillHub 插件目錄 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-notify-bridge 把客戶端提醒和 Discord(及可選 webhook)串成一條鏈路:就近處理審批,遠端收摘要與 Token,並用健康頁把 Bot、代理和客戶端狀態攤開。若要查看分類與簡介,可打開 SkillHub 目錄頁;安裝與細節以 GitHub 倉庫 README 爲準。