dsh-session-trash:DSH 桌面版兩段式會話刪除

前言

在 DSH(DeepSeek Harness)桌面版裏,側欄會話一旦堆多,很多人會想「刪掉這條試錯的對話」,而不是隻把它藏起來。官方持久化插件 dsh-session-persistence 的文檔寫得很清楚:只有歸檔,沒有刪除或保留接口;歸檔只是把會話從側欄隱藏,日誌、投影緩存、工作區記賬都還在磁盤上。若你確實需要可恢復的「移出工作區」以及二次確認後的徹底刪除,社區插件 dsh-session-trash 補上了這條能力,並把刪除拆成兩步,降低誤刪風險。

下面介紹它是什麼、能做什麼、如何安裝,以及使用時需要知道的限制。

這是什麼

dsh-session-trash 是維護者 qyy2005 發佈的 DSH 桌面客戶端插件(純 JavaScript、無構建步驟,MIT 許可證,當前 package 版本爲 0.1.0)。它在側欄會話行提供垃圾桶入口,把會話(連同子智能體與派生對話家族)移入插件自管的回收站;在 設置 → 回收站 裏可以恢復、徹底刪除或清空。運行中的會話會被拒絕移入,恢復後會儘量掛回原工作區。

插件目錄頁:https://www.skillhub.cn/plugins/qyy2005/dsh-session-trash
源碼與說明:https://github.com/qyy2005/dsh-session-trash

核心功能

行尾垃圾桶移入回收站

懸停側欄會話行會出現垃圾桶按鈕。確認後,會話目錄被移動到回收站,並一併處理其子智能體 / 派生對話家族。

移入時插件會:移動會話目錄;刪除投影緩存 storages/session_projcache 中對應記錄;從所有工作區記賬中脫離;通過 api-session/removed 讓側欄立刻去掉該行。

設置 → 回收站

回收站頁面列出條目,包含標題、原工作區、會話數、移入時間、佔用大小,並支持:

  1. 恢復:把目錄搬回原位、重新掛回原工作區、恢復歸檔 / 置頂標記;頁面會自動刷新。
  2. 徹底刪除:第一次點擊變爲「確認徹底刪除?」,再次點擊才真正刪除。
  3. 清空回收站:同樣採用兩段確認。

徹底刪除會直接刪掉回收站裏該條目的目錄與索引,不進系統回收站,不可恢復。

若原工作區已經不存在,會話仍會還原到原來的會話目錄,並出現在側欄「未分組」裏。

運行中會話的保護

當會話還有未結束的回合、子智能體、後臺任務或定時提醒時,插件會提示等其結束再移入,不會替你停掉任務再刪。

存儲位置

回收站數據在 DSH 用戶目錄下,與 profile 內的插件安裝路徑不同:

項 路徑
回收站目錄 <DSH_HOME>/session-trash/<會話 id>/
索引 <DSH_HOME>/session-trash/index.json(記錄原目錄、工作區、歸檔/置頂標記、大小)

安裝與啓用

安裝方式來自項目 README:把整個插件目錄複製到當前 profile 的 node_modules,並在 package.json 裏登記 bundle 與依賴,然後完全退出 DSH 再打開(客戶端 bundle 只在啓動時組裝)。

  1. 複製目錄到:
<DSH_HOME>/profiles/<profile>/node_modules/dsh-session-trash/
  1. 在 profile 的 package.json 中登記(示例結構與版本號以 README 爲準):
{
  "dsh": { "profile": { "bundles": [ "...", "dsh-session-trash" ] } },
  "dependencies": { "...": "...", "dsh-session-trash": "0.1.0" }
}
  1. 完全退出 DSH 再打開,否則客戶端側不會加載新 bundle。

安裝前建議閱讀 GitHub 倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限讀寫 <DSH_HOME>,包括移動會話目錄與刪除緩存。

典型用法

  1. 在側欄懸停要清理的會話行,點行尾垃圾桶,在確認框裏確認移入回收站。
  2. 打開 設置 → 回收站(頁面 order 爲 25,排在 Agent 預設與 Web 插件之間),查看列表。
  3. 誤刪或臨時清理:點 恢復,等待頁面刷新後回到原工作區(或「未分組」)。
  4. 確定不再需要:對單條使用兩段式 徹底刪除,或對整個回收站使用兩段式 清空回收站。

若與 dsh-better-workspace 共存,會話右鍵菜單由後者硬編碼,第三方 menu.item 不會出現;入口主要是行尾按鈕與設置頁。

實現要點(供排查問題)

Host 半(index.js)在 ctx.webServer 上掛載同源路由:/dsh-session-trash/list、trash、restore、purge、empty,作爲無構建純 JS 插件的 UI→Host 通道。

Client 半(client.js)通過 window.__ModuleLoader__.load 註冊三個座位:sidebar.workspaces.session.row.action(行尾垃圾桶,需帶空 inject face)、shell.overlay(移入確認框)、settings.section(回收站頁)。

已知限制與適用場景

適合:需要在 DSH 桌面側欄真正「移走」會話目錄、又希望有一段時間緩衝再徹底刪除的開發者;希望子智能體家族隨主會話一起進回收站的用戶。

注意:

  • 恢復不能換工作區:會話 SessionHeader.cwd 只讀,DSH 用其校驗工作區歸屬;換目標文件夾需改日誌頭部並搬目錄,官方不支持,硬做可能導致會話打不開。
  • 插件升級或重裝會覆蓋 node_modules 裏的文件,自定義改動會丟失。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件爲社區貢獻,非官方內置能力。

結尾

dsh-session-trash 在官方「僅歸檔、無刪除接口」之上,提供了移入 <DSH_HOME>/session-trash 的兩段式刪除與設置頁統一管理。若你的痛點是側欄會話只藏不刪、或擔心一次點錯就丟日誌,可以按 README 安裝 0.1.0 並在退出重啓後試用行尾垃圾桶與 設置 → 回收站。

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

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

小夜