前言¶
DeepSeek Harness(DSH)默認把會話設計成「只能歸檔、不能從磁盤上抹掉」:歸檔後列表裏看不見,但 JSONL 日誌仍在 $DSH_HOME/sessions 下,仍可能被檢索佔用空間。若你希望歸檔區裏的對話徹底清理掉,官方 UI 沒有對應入口。下面介紹社區插件 dsh-archive-delete 如何補上這一步,且只作用於已歸檔、無運行中 Agent / 無其他寫鎖的會話。
這是什麼¶
dsh-archive-delete 是 DSH 的 Web 端插件(Host + client bundle),維護者爲 ZenithJoyH,在 SkillHub 分類爲「記憶」。它在側欄歸檔會話的「⋯」菜單中增加「永久刪除…」,經確認後由 Host 刪除會話日誌目錄,並同步清理 Workspace 記賬與歸檔集合;不刪除可見會話、工作區目錄或內容尋址的共享附件。
核心功能¶
側欄入口與安全條件¶
- 僅已歸檔會話的菜單會出現「永久刪除…」;普通會話與置頂會話無此項。
- Host 端校驗:會話須在歸檔集合中,且不能存在 live Agent 或其他寫入者,否則拒絕。
- 瀏覽器彈出確認框,展示會話標題與不可撤銷提示;失敗時在界面就地顯示原因。
刪除範圍與冪等¶
- 刪除對象是會話日誌目錄(與官方 JSONL 後端佈局一致);附件等工作區共享文件不刪。
- 若日誌目錄已不存在但歸檔記賬仍在,重試只做清理,不報錯。
- 中英案文隨 dsh 語言設置;樣式使用 dsh 主題 token,適配明暗主題。
Host 路由與權限邊界¶
插件註冊 POST /plugin/archive-delete/delete,複用與官方 /api 同級的連接校驗(Host/Origin 圍欄 + 瀏覽器會話認證)。只接受 POST,請求體上限 64 KiB;Session id 經與官方一致的 projectKey / encodeSegment 計算路徑並限制在會話根目錄內;刪除前通過 sessionPersistence.open(id, 'write') 搶佔寫所有權。不提供批量清空歸檔按鈕,當前版本按單會話刪除。
安裝與啓用¶
包版本爲 0.1.0(見倉庫 package.json)。兼容 DSH 0.2.x(Web / 桌面共用 client bundle),Node.js ≥ 22,許可證 MIT。插件以當前 dsh 進程權限訪問 $DSH_HOME/sessions 與會話持久化服務,安裝前宜瀏覽倉庫源碼與許可證。
從 npm 或 GitHub(README 發佈後示例)¶
Web profile:
dsh plugin --profile web add dsh-archive-delete
桌面 profile:
dsh plugin --profile desktop add dsh-archive-delete
或從 GitHub 源碼安裝:
dsh plugin --profile web add github:ZenithJoyH/dsh-archive-delete
dsh plugin --profile desktop add github:ZenithJoyH/dsh-archive-delete
包內 dsh.bundle.patch 會由插件管理器自動插入加載行,一般無需手工改 cordis.patch.yml。安裝後刷新頁面;若 Host 未自動加載,可重啓 dsh / 桌面端。
本機源碼安裝(桌面端)¶
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add /absolute/path/to/dsh-archive-delete
手動複製安裝¶
將倉庫複製到 profile 的 node_modules/dsh-archive-delete,在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾加入:
- insert:
- id: archive-delete
name: "dsh-archive-delete"
卸載¶
dsh plugin --profile desktop remove dsh-archive-delete
並刪除 cordis.patch.yml 中 archive-delete 條目後重啓。
可選配置¶
僅在 JSONL 會話根目錄或 DSH_HOME 與默認不一致時,可在 cordis.patch.yml 對應條目下配置 sessionsRoot、dshHome 等(見倉庫 README)。
典型用法¶
按 README 交互流程操作即可:
- 在側欄對目標會話執行官方 Archive 歸檔。
- 將視圖切到「全部對話」或「僅顯示已歸檔」,定位該歸檔行。
- 打開該行「⋯」→ 永久刪除…。
- 在確認彈窗中點擊 永久刪除。
- 成功後日志目錄移除,歸檔與 Workspace 記賬同步清理,側欄該行消失。
若要連同附件做引用計數式清理,需另行實現;本插件不處理共享附件文件。
適用場景與注意¶
適合:長期使用 DSH、歸檔會話積累較多、需要在確認後從磁盤刪除日誌以釋放空間或降低檢索面片的開發者。
不適合或未覆蓋:
- 未歸檔會話無法通過本插件刪除(即使知道 Session id)。
- 正在運行的會話須先停止或歸檔,不能「先刪後停」。
- 依賴 JSONL 持久化後端的目錄佈局;若組合啓用 SQLite 全文索引,刪除後索引行不會立刻清除,重索引時纔會消失。
- 確認彈窗無「輸入標題」類強確認;需要可自行擴展。
DSH 生態主張「一切皆插件」;SkillHub 目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。本插件星標數爲 0(目錄頁統計),屬個人維護的開源組件,使用前請自行評估風險。