前言¶
用 DSH 桌面端做開發時,一個容易被忽略的干擾是:明明沒有任務在跑,退出應用卻彈出”當前正在運行的任務將會中斷”。這個提示來自桌面端的退出檢查邏輯。先把它爲什麼誤報講清楚,再看這個插件怎麼解決。
真正原因是桌面端會把所有待處理的 next-step 消息都當成”有任務”。但切換審批策略、工作目錄、計劃模式,或者增刪、運行插件時,官方功能只是用 agent.inject() 投遞了一條提示。這類消息不會喚醒已經空閒的 agent,於是一直留在隊列裏。當這些操作發生在空閒會話中時,提示永遠等不到被消費,退出檢查就一直看到待處理消息並報警。
這是 harness 自身的交互 bug(官方 dsh-desktop-host 的判斷邏輯加上官方提示生產者),不是裝了別的插件導致的衝突。
這是什麼¶
dsh-quit-idle-fix 是 shuaichewang 維護的 DSH 客戶端插件,用來修復上面這個退出提示 bug。當前版本 0.1.0,MIT 許可證,作者聲明與 DeepSeek 無從屬關係。它不是改 app.asar,而是以 profile bundle 的方式安裝,因此能通過桌面端簽名檢查。
思路很直接:空閒會話裏那幾條純提示本來就不會叫醒 agent,直接清掉即可。運行時上下文和插件工具裏仍然能查到對應狀態,所以信息並沒有丟失。
核心能力¶
插件只在 agent 處於 idle 時,消費 source.kind 爲以下四類的 next-step 消息:
user-approval:審批策略變化working-directory:工作目錄變化或恢復cordis-host-runner:插件增刪/運行結果plan-mode:計劃模式切換
這些信息不是被刪掉了:審批策略和工作目錄已經寫在運行時上下文裏,計劃模式體現在 prompt 中,Cordis 插件狀態可以用插件工具再次查看。
工作方式如下:
1、運行中的 agent 一律不碰,turn 中途排進來的通知仍會走到下一步。
2、如果已有用戶 turn 排隊,清掃會退讓,讓該 turn 自己去消費這些通知。
3、每 500 ms 檢查一次,加載時立即掃一次,進程內不保存任何狀態。
4、帶 next-turn 用戶消息的 agent 會被跳過。
安裝與啓用¶
通過 GitHub 安裝:
dsh plugin --profile desktop add github:shuaichewang/dsh-quit-idle-fix
如果已發佈到 npm,也可以用包名安裝:
dsh plugin --profile desktop add dsh-quit-idle-fix
或者從插件市場安裝。裝完後重啓桌面應用;如果改動沒有立即生效,再重啓一次。
運行環境要求:Node.js >= 20,dsh 版本在 >=0.2.0-rc.1 <0.3.0-0 之間。
驗證是否生效¶
先跑插件自帶的測試:
node test.mjs
# ok: idle notices removed, running agent untouched, timer disposed
這條命令驗證三件事:空閒時的通知被清掉、運行中的 agent 未被觸碰、定時器已釋放。然後再確認沒有會話在運行、沒有後臺作業,退出桌面應用。誤報的中斷警告這時應該不再出現。如果有真實任務或 turn 在跑,警告仍會出現,這是預期行爲。
適用場景與注意¶
適合使用 DSH 桌面端、在空閒時切換審批策略/工作目錄/計劃模式或增刪插件後遇到退出誤警告的開發場景。社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不是應用商店。
需要注意:
1、插件以當前 dsh 進程的權限運行,安裝前應先讀一遍源碼,確認行爲符合預期;許可證是 MIT。
2、只清理上面四類 source.kind。未來新增功能或第三方插件注入其他類型的通知,仍可能觸發誤報,遇到可提 issue。
3、它不碰 next-turn、真實用戶消息、運行中的 agent、作業和排程任務。
4、只讀內存中的 agent 列表和 inbox,不聯網、不訪問文件、不讀取憑據。
5、僅桌面端有效,Web profile 沒有退出確認對話框。
6、它是繞過方案。更徹底的修法在上游 dsh-desktop-host:不要把通知形態的 next-step 消息計爲活躍工作,或避免把不喚醒會話的通知留在 inbox 裏。
寫在最後¶
這個插件解決的是一個很具體的交互問題:空閒會話裏的系統提示被退出檢查誤當成活躍任務。它只關心四類通知,不改 agent 行爲,也沒有狀態,裝上去就能跑。
- 目錄頁:https://www.skillhub.cn/plugins/shuaichewang/dsh-quit-idle-fix
- GitHub:https://github.com/shuaichewang/dsh-quit-idle-fix