dsh-session-delete:永久刪除 DeepSeek Harness 冷會話

前言

DeepSeek Harness (DSH) 採用插件化架構,允許開發者擴展功能。隨着使用時間的增加,會話產生的持久化日誌、工作區賬目以及搜索索引會佔用磁盤空間並增加檢索負擔。dsh-session-delete 插件在「設置 → 會話管理」中提供了直接管理這些會話的界面,支持永久刪除冷會話。

核心功能

刪除語義

該插件在刪除會話時會執行以下操作:
* 刪除持久化日誌(~/.dsh/sessions/<項目>/<session-id>/)。
* 從工作區賬目中摘除會話引用(workspaceRegistry.detachSession)。
* 清理搜索索引(SQLite FTS),在下一次查詢時自動同步完成。
* 包含兩步確認機制,刪除前後均進行校驗,確保持久化列表不再包含該會話。
* 每次刪除都會記錄日誌(成功爲 info,異常爲 warn),工作區賬目摘除失敗會作爲警告回傳界面,不會靜默吞掉錯誤。

列表與批量操作

  • 子代理會話:默認隱藏 origin: "subagent" 的會話。勾選「顯示子代理會話 (N)」開關即可列出它們。
  • 側邊對話隔離:Better-Sidebar 的 Side Chat 線程帶 subagent 標記,本插件按標題前綴 Side: 識別,永遠不顯示。
  • 搜索:支持按標題、會話 ID、類型標籤(子代理/主會話)、工作區路徑、Agent Preset(如 qq-chat)搜索。輸入 子代理 會自動放開隱藏並顯示所有子代理會話。
  • 分組:支持按時間(今天/近7天/近30天/更早)或按工作區(會話創建時的 cwd)分組。
  • 批量選中與刪除:支持整組勾選、全選、單行勾選。選中範圍嚴格跟隨屏幕可見條目。批量刪除逐個串行執行,顯示進度(如 刪除中 12/357),單條失敗不中斷整批,結束後彙總成功與失敗數。
  • 佔用大小:每行顯示會話日誌文件的體積。

安全與限制

  • 目錄守衛:遞歸刪除會話目錄前校驗目錄名等於會話 ID。若路徑形態變化導致不匹配,只刪日誌文件並記錄警告,防止誤刪整個工作區分組。
  • 活動會話限制:本次啓動中打開過的會話(包括當前查看的會話)會被拒絕刪除,因爲活動 Agent 會重寫日誌,刪除不徹底。重啓應用後這些會話變成冷會話,即可正常刪除。
  • 狀態檢測:Host 列表接口不可用時,界面會顯示錯誤並禁用所有刪除按鈕。
  • 請求超時:前端請求設置 20 秒超時(AbortController),防止 Host 無響應導致界面鎖死。

兼容性

  • DSH Desktop 2.0.10 / 內核 0.1.5-rc.2:已驗證。
  • DSH Desktop 2.0.9 / 內核 0.1.5-rc.1:未驗證。若該版本的 list() 返回的是裸 header 而非 snapshot,列表將取不到 id。

安裝與啓用

在目標 profile 的 package.json(例如 ~/.dsh/profiles/desktop/package.json)中加入依賴與 bundle:

{
  "dependencies": {
    "dsh-session-delete": "github:<你的用戶名>/dsh-session-delete"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "…其他插件…",
        "dsh-session-delete"
      ]
    }
  }
}

在 profile 目錄執行 pnpm install,重啓 DSH 應用。

典型用法

進入 設置(齒輪)→ 會話管理。使用搜索、分組或開關篩選會話,選中後點擊刪除即可。

總結

dsh-session-delete 提供了一個安全、可控的會話清理入口,適合需要定期整理會話數據、釋放磁盤空間或維護工作區賬目的 DSH 用戶。安裝前請確認宿主版本兼容性。

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

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

小夜