前言¶
在 DeepSeek Harness(DSH)的開發場景中,開發者常遇到離開頁面後無法收到通知的問題。這是因爲 Electron 應用在窗口被掛起或隱藏時,渲染進程發出的通知往往會被系統靜默攔截。爲了解決這一層級的丟失問題,需要利用宿主進程直接向系統投遞通知。
下面介紹 dsh-host-notify。這是一個宿主側 macOS 通知插件,通過內置簽名應用投遞,免疫 Electron 渲染進程隱藏丟失通知。它由 huhui-tech 維護,使用 MIT 許可證。
核心功能¶
插件運行在宿主進程,不經過渲染進程或 Service Worker,確保通知的可靠性。它主要具備以下能力:
- 事件監聽:監聽
ask_user_question事件、審批事件以及回覆完成事件。 - 應用投遞:使用內置的 DSH Notifier 應用發送通知。
- 交互增強:支持點擊通知直接將 DSH 抬回前臺。
- 降級方案:提供
osascript降級方案,確保在特定環境下仍能投遞通知。 - 去重機制:支持通知去重,避免重複打擾。
安裝與啓用¶
在終端執行以下命令即可安裝:
dsh plugin --profile web add dsh-host-notify
插件僅限 macOS 平臺(darwin),其他平臺安裝後插件靜默不啓用,不影響宿主運行。
使用方法¶
- 離開頁面提醒:離開 DSH 頁面也不錯過任何動靜。
- 點擊喚醒:點擊通知直接把 DSH 抬回前臺。
- 設置樣式:在系統設置中將通知樣式設爲持續,確保橫幅駐留屏幕。
- 系統授權:首次使用需在系統設置中授權 DSH Notifier 發送通知。
注意事項¶
- 首次配置:安裝後首次收到通知時,系統可能會彈出授權框,需要手動點擊“允許”。
- 通知樣式:建議在系統設置中將 DSH Notifier 的通知樣式設爲“持續”。
- 環境依賴:依賴 Node.js >= 20。
- 去重規則:交互級 60s 去重,完成級 5s 去重。
總結¶
dsh-host-notify 解決了在 Electron 環境下瀏覽器通知容易丟失的痛點,適合需要在後臺保持感知的開發者。其宿主側的運行機制保證了通知的穩定性。