前言¶
在 DeepSeek Harness(DSH)裏,一個 Session 往往對應一長段對話,還會通過工具調用在工作區裏留下 write、edit、apply_patch 等操作產生的文件。側邊欄只負責列出和切換 Session,自帶的歸檔(Archive)主要是隱藏行,並不能按你的意圖「鎖住」「整包挪走」或「刪了還能找回」。會話一多,誤刪、跨工作區整理、批量清理都會變得棘手。
下面介紹的 dsh-session-tools 是社區維護的客戶端插件,在側邊欄上補齊 Session 級管理能力:鎖定、回收站、跨工作區移動,以及按工作區分組的批量操作,並儘量帶上該 Session 在工作區內寫過的文件。
這是什麼¶
- 名稱:dsh-session-tools(GitHub:
panhaiyao1982-bit/dsh-session-tools) - 維護者:panhaiyao1982-bit
- 分類:客戶端(注入 DSH Web 側邊欄與疊加層 UI)
- 定位:爲 DeepSeek Harness 側邊欄提供 Session 管理:鎖定、回收站、移動,以及批量處理;除你明確選擇的「直接刪除」外,其餘路徑在回收站中可恢復。
插件以當前 DSH 進程權限讀寫本機 ~/.dsh/ 下的 Session 存儲與註冊表。安裝前建議自行查看倉庫源碼與 MIT 許可證,確認是否符合你的安全與合規要求。
界面裏多了什麼¶
| 位置 | 能力 |
|---|---|
Session 行 ⋯ 菜單 |
鎖定/解鎖 · 刪除 Session 及文件… · 移動到另一工作區… |
| Session 行尾部 | 已鎖定 Session 顯示鎖定標記 |
| 側邊欄底部(Settings 旁) | Manage(批量管理)· Recycle bin(帶數量) |
| 全屏疊加層 | 批量面板、回收站、移動對話框、確認框 |
安裝並重啓應用後,底部應出現 Manage 與 Recycle bin。
四類核心操作¶
鎖定(Lock)¶
鎖定後,該 Session 不能被刪除或移動。鎖定狀態寫在 ~/.dsh/session-tools/state.json,重裝插件後仍會保留。鎖定不阻止正常對話,也不阻止 DSH 自帶的 Archive(歸檔僅隱藏 Session)。
刪除 Session 及文件¶
菜單裏只有一項「刪除」,但會再問你想怎麼走:
- 移到回收站 — Session 及其寫過的工作區文件一併進入回收站,可恢復;原文件路徑會記錄,恢復時按原路徑放回。
- 直接刪除 — Session 日誌與相關文件從磁盤移除,不可撤銷,因此是單獨按鈕且非默認。
回收站(Recycle bin)¶
可對條目執行:恢復、永久刪除、清空。日誌與文件存放在 ~/.dsh/session-tools/trash/<entry>/(含 session/,若連同文件刪除則還有 files/)。
移動到另一工作區¶
Session 與其寫過的工作區文件一起遷到目標工作區。這是真實的歸屬變更:頭部幀的 cwd 改寫爲目標路徑,日誌目錄遷入目標工作區的 Session 目錄,工作區註冊表中的 Session 記賬會重指向。重啓後側邊欄應仍顯示在新工作區,而不會把行「彈回」原處。
批量管理(Manage)¶
按工作區分組展示 Session(默認摺疊),支持單選、組內全選,再對選中項批量鎖定/解鎖/刪除/移動。某一 Session 無法處理時不會中斷整批:已鎖定、運行中、已在回收站或已不存在的條目會被跳過,面板會說明拆分結果。
「運行中」如何判斷¶
插件不依據「是否在內存裏」——側邊欄會對打開過的 Session 長期駐留,單靠內存會把閒置 Session 誤判爲不可刪。它查詢 DSH 的 workspace/session-activity 通道(與內置歸檔同一信號):只有對話輪次、子代理、後臺任務或計劃任務等真正在跑時才拒絕刪除,並會指明原因。僅打開但未活動的 Session 可以刪除,頁面會移除對應行。
會動到哪些路徑¶
~/.dsh/session-tools/— 插件自有狀態:鎖定、回收站條目、移動歷史、構建戳記等。刪除該目錄會清掉鎖定與回收站,不影響其他 DSH 數據。- Session 存儲
~/.dsh/sessions/<workspace>/<session id>/— 刪除或移動時涉及的對話日誌;除移動時改寫頭部cwd外,其餘幀按字節複製。 - 工作區註冊表
~/.dsh/storages/workspace.json— 移動或刪除時更新雙方工作區的 Session 賬本。
「Session 寫過的文件」指其日誌裏通過 write / edit / apply_patch 記錄、且限定在當前 Session 工作區內的路徑;不會動其他 Session 的文件,也不會動該 Session 從未寫入的路徑。
安裝與兼容¶
環境要求(見倉庫 package.json):
- DSH:
>=0.2.2-rc.1且<0.3.0-0 - Node:
>=22.15
安裝(README 原文):
# 自 npm 發佈後即可使用
dsh plugin add dsh-session-tools
# 或直接從本倉庫安裝(無需構建)
dsh plugin add github:panhaiyao1982-bit/dsh-session-tools
安裝後需重啓一次 DSH,側邊欄底部纔會出現 Manage 與 Recycle bin。
平臺:macOS、Linux、Windows 均可;插件內無平臺分支。路徑編碼與 DSH JSONL 存儲對齊,Windows 大小寫不敏感比較、回收站清單中的相對路徑統一用正斜槓等細節在 README 中有說明。跨盤移動(如 Windows C: → D:)在 fs.rename 失敗時會回退爲複製後刪除。移動依賴 @deepseek-ai/dsh-workspace 的註冊表能力;若註冊表不可用,插件會失敗關閉(registry/unavailable,不改動數據)。
當前倉庫版本爲 0.1.7,許可證 MIT。
典型用法(可復現流程)¶
- 保護重要會話:在 Session 行打開
⋯,選擇鎖定;行尾出現鎖定標記,誤刪/誤移會被拒絕。 - 軟刪除待整理會話:
⋯→ 刪除 Session 及文件 → 選擇「移到回收站」;需要時在底部 Recycle bin 恢復或永久清理。 - 跨項目遷移上下文:
⋯→ 移動到另一工作區,選擇目標;對話與關聯文件隨 Session 歸屬到新工作區,重啓後仍在新處。 - 批量收尾:點 Manage,按工作區展開,勾選多條 → 統一鎖定、刪除或移動;注意面板對「跳過」條目的說明。
除「直接刪除」與回收站內的「永久刪除/清空」外,其餘操作可在回收站中撤銷。
適用場景與注意¶
適合:長期跑 DSH、多工作區、多 Session 的開發者;需要把某次智能體會話連同其改過的文件一起歸檔、遷移或分批清理的場景。
注意:
- 插件與 DSH 同權限訪問本機文件與
~/.dsh配置,安裝前請審閱 GitHub 倉庫 源碼。 - 移動功能依賴內部工作區註冊表接口,非公開 API;大版本升級 DSH 後應重新驗證插件是否仍符合
engines.dsh範圍。 - 社區插件目錄 SkillHub 條目 與 DeepSeek / 幻方無官方從屬關係;生態理念是「一切皆插件」,以倉庫 README 與發行說明爲準。
結尾¶
dsh-session-tools 把 Session 從「只能切換和歸檔」推進到可鎖定、可進回收站、可連文件搬家、可批量處理,並儘量讓非直接刪除的路徑可恢復。若你正在用 DSH 0.2.x 線且 Node 滿足要求,可按上述命令安裝,重啓後在側邊欄底部即可使用 Manage 與 Recycle bin。
- 目錄頁:https://www.skillhub.cn/plugins/panhaiyao1982-bit/dsh-session-tools
- 源碼與文檔:https://github.com/panhaiyao1982-bit/dsh-session-tools