dsh-conversation-trash:爲 DeepSeek Harness 補上可撤銷的對話刪除

前言

DeepSeek Harness(DSH)默認會把會話歸檔,但不會真正從磁盤上刪掉對話。工作區裏試過的分支、過期任務、誤建的會話會一直佔着列表和目錄,只能歸檔、不能「清掉又後悔」。若你希望在本地 Harness 環境裏做一次刪除、又保留幾天內反悔的餘地,就需要在歸檔之外再疊一層回收站語義。

下面介紹社區插件 dsh-conversation-trash(維護者 ASALULU,SkillHub 分類:記憶)。它把會話日誌、列表投影緩存與工作區歸屬移入 30 天回收站,支持 Toast 撤銷、回收站頁恢復與永久清除,而不改動 DSH 核心的歸檔行爲。

這是什麼

dsh-conversation-trash 是 DSH 的宿主 + Web 客戶端插件:在會話行提供刪除入口,把指定 Session 的日誌與相關緩存遷到本地回收站,並從工作區註冊表裏解除關聯。刪除後列表立即不再展示該會話;誤刪可在短時間內撤銷,或在 Plugins → 對話回收站 中恢復或徹底刪除。

  • 倉庫:https://github.com/ASALULU/dsh-conversation-trash
  • 目錄頁:https://www.skillhub.cn/plugins/ASALULU/dsh-conversation-trash
  • 當前包版本(package.json):0.4.0
  • 許可證:MIT

SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;安裝前請自行查看源碼與許可證。

核心功能

依據 README 與 package.json,插件已覈實能力如下。

  1. 官方 Slot 集成:會話行懸停垃圾桶按鈕,以及行尾「…」菜單中的「刪除對話」;不注入 DOM、不改原生菜單結構。
  2. 刪除與撤銷:確認後日志移入回收站、列表行消失;Toast 提供 撤銷,可立即恢復。
  3. 回收站頁面:Plugins → 對話回收站,可查看標題、刪除時間、佔用空間,並執行恢復、徹底刪除、清空回收站(後兩者爲兩段式確認)。
  4. 30 天自動清掃:到期後自動清理;已刪會話的日誌不再參與列表與搜索。
  5. 界面語言:中文 / English,跟隨 DSH 語言設置。

會移動什麼、什麼不動

刪除時插件主要處理以下內容(路徑均相對 <DSH_HOME>):

對象 處理
sessions/<項目目錄>/<session-id>/ 移入回收站;失敗則保持原樣
storages/session_projcache/sessions/<session-id>.json 盡力移入;失敗則留在原處,不阻塞刪除
workspace.json 的成員 / 置頂 / 歸檔 通過 Workspace registry 解除
attachments/** 不動(內容尋址、跨會話共享)
子代理會話 不動(獨立 session 目錄)

回收站目錄形如:plugin-data/session-delete/trash/<時間戳>--<session-id>--<隨機後綴>/,內含 manifest.json、log/、projection.json。

安裝與啓用

要求:DSH >= 0.2.2-rc.1 且 < 0.3.0,Node >= 22.15.0。

在 DSH 內打開 Plugins → Add plugin,填寫插件名 dsh-conversation-trash;或使用 CLI(profile 請換成你的實際配置名,例如 web):

dsh plugin --profile web add dsh-conversation-trash

安裝後需要重啓 DSH,宿主在啓動時加載插件。桌面端建議在應用內 Plugins 頁面安裝。

典型用法

  1. 在會話列表中,懸停會話行點擊垃圾桶,或打開行尾「…」→ 刪除對話。
  2. 確認後內容進入回收站,列表中該行消失;若剛誤刪,在 Toast 上點 撤銷。
  3. 需要批量管理時,打開 Plugins → 對話回收站:對單條 恢復 或 徹底刪除,或 清空回收站。

若刪除返回需先重啓的提示(活會話仍在內存中),應先退出並重啓 DSH,再執行刪除;README 說明這是爲了避免「列表裏沒了、內容仍能從內存打開」的不一致。

宿主側還提供 POST /api/session-delete,通過 body 中的 action(delete、restore、list-trash、purge、purge-all)調用;路由爲 owner-only,一般由 UI 使用,擴展集成時可參閱倉庫 README。

安全模型與已知限制

安全(README 摘要):插件不執行 shell、不發起網絡、不使用 eval;路徑經 resolve 與根目錄包含檢查;HTTP 路由僅 owner 可訪問;活會話拒絕刪除;日誌先移動,緩存移動失敗不會清空已建立的回收站條目。

使用上需注意:

  • 插件在當前 DSH 進程權限下讀寫本地文件;安裝前應閱讀源碼與 MIT 許可證,確認符合你的環境策略。
  • 打開過的會話需重啓 DSH 後才能刪除(live 狀態)。
  • 附件、子代理會話不隨父會話刪除。
  • 回收站內容保留約 30 天;若需立即釋放磁盤,請在回收站頁「徹底刪除」。
  • 多進程:workspace.json 無跨進程寫鎖,刪除過程中避免在另一個 DSH 進程裏操作同一工作區。
  • DSH 大版本升級若改變磁盤佈局,刪除可能返回診斷而非靜默破壞;升級前建議在測試 profile 驗證。

結尾

DSH 生態強調「一切皆插件」。dsh-conversation-trash 在不動核心歸檔的前提下,補上了「可撤銷刪除 + 30 天回收站」這一層本地治理能力,適合需要定期清理會話、又希望保留誤刪緩衝的 Harness 用戶。

  • 目錄頁:https://www.skillhub.cn/plugins/ASALULU/dsh-conversation-trash
  • GitHub:https://github.com/ASALULU/dsh-conversation-trash
羽毛球分组比赛记分
小程序二维码

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

小夜