dsh-session-tools:在 DSH 側邊欄管理 Session 與關聯文件

前言

在 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 及文件

菜單裏只有一項「刪除」,但會再問你想怎麼走:

  1. 移到回收站 — Session 及其寫過的工作區文件一併進入回收站,可恢復;原文件路徑會記錄,恢復時按原路徑放回。
  2. 直接刪除 — 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。

典型用法(可復現流程)

  1. 保護重要會話:在 Session 行打開 ⋯,選擇鎖定;行尾出現鎖定標記,誤刪/誤移會被拒絕。
  2. 軟刪除待整理會話:⋯ → 刪除 Session 及文件 → 選擇「移到回收站」;需要時在底部 Recycle bin 恢復或永久清理。
  3. 跨項目遷移上下文:⋯ → 移動到另一工作區,選擇目標;對話與關聯文件隨 Session 歸屬到新工作區,重啓後仍在新處。
  4. 批量收尾:點 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
羽毛球分组比赛记分
小程序二维码

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

小夜