DSH 0.1 版本的側邊欄三點菜單隻有重命名、分叉和歸檔,API 也沒有 delete 路由,JSONL 持久層是 append-only 的。歸檔功能只是隱藏會話,數據仍留在磁盤上。本插件補齊了這一能力,通過頂部 Trash 按鈕移除內存和磁盤數據。
插件介紹¶
這是一個給 DeepSeek Harness (dsh) 補上刪除會話能力的插件,由 chuling-lingling 維護。它解決了原版 dsh 無法徹底刪除會話、磁盤數據無法清理的問題。
插件註冊了宿主端的刪除隊列,瀏覽器端在會話頭部註冊 Trash 按鈕。刪除操作會觸發 session/disposed 事件,將會話從內存中摘除並同步給所有客戶端,同時刪除對應的磁盤目錄 ~/.dsh/sessions/<項目>/<會話ID>/。
核心功能¶
- 刪除當前會話:同時移除內存中的會話對象和磁盤目錄。
- UI 入口:在會話頭部工具區註冊 Trash 按鈕,與 Session log 按鈕同排相鄰。
- 安全校驗:會話 ID 需通過白名單校驗(
session-前綴 + 受限字符集),防止路徑注入。 - 健壯性處理:延遲複查剛創建的會話目錄,防止目錄落盤晚於刪除操作;單次隊列上限 50 個,處理結果寫入日誌。
- 持久化表現:側邊欄實時移除,重啓後不會復活。
安裝與啓用¶
插件依賴 @deepseek-ai/schemastery,需要 dsh 0.1.x 環境及 pnpm。
# 安裝
dsh plugin --profile web add github:chuling-lingling/dsh-plugin-session-delete
# 卸載
dsh plugin --profile web remove dsh-plugin-session-delete
安裝後重啓 dsh web 即可生效。
典型用法¶
- 打開任意會話。
- 點擊會話頁面頂部標題行、Session log 按鈕左邊的 Trash 按鈕。
- 在確認彈窗中點擊確認。
執行後,當前會話會從側邊欄和磁盤上消失,正在運行的會話會被強制終止,界面會自動切換。
適用場景與注意¶
- 適用場景:需要清理本地會話存儲、保持側邊欄整潔的用戶。
- 不可恢復:刪除操作不可逆,確認彈窗是唯一防線。
- 按鈕顯示:頭部 Trash 按鈕只在非空白會話(有對話內容的會話)顯示。
- 無批量列表:插件不提供批量刪除列表,需逐個打開會話進行刪除。
- 入口變更:v0.3.0 版本已移除設置頁入口,僅保留聊天頁 Trash 按鈕。
結尾¶
該插件填補了 DeepSeek Harness 在會話管理上的關鍵空白,提供了真正意義上的數據清理能力。更多詳情可查閱插件目錄或源碼。