前言¶
在 DeepSeek Harness(dsh)裏,會話數量一多,側邊欄很快會變成「只能勉強歸檔、刪不掉落盤日誌」的列表。內置能力對會話主要是 Archive:可逆隱藏,不會把 JSONL 持久化目錄從磁盤清掉。你要看每個會話的 cwd、冷熱狀態、佔用體積、日誌路徑,或者在跑着的回合上停掉、改標題、徹底刪掉某次實驗留下的會話,往往得自己翻目錄或寫腳本。
dsh-session-management 由 Chengeat 維護,是面向 Web GUI 的客戶端插件(分類:客戶端)。它在設置頁、側邊欄右鍵、/sessions 命令和 session_manage 工具上共用同一套 Host 邏輯,補上列表概覽與不可逆的真刪除,並在 MIT 許可證下開源(當前 package 版本 1.0.0,構建目標 @deepseek-ai/dsh 0.2.2)。
這是什麼¶
一句話:在 dsh 裏列出、歸檔、置頂、停止、重命名會話,並從磁盤永久刪除會話日誌。
與「只歸檔」相比,本插件的重點是可搜索的全局視圖,以及經過二次確認的 delete(先停再刪目錄)。四個入口行爲一致;界面語言隨 Harness 的 English / 中文設置切換,無需重載頁面。
核心功能¶
資料中的能力表如下,均通過同一操作核心實現:
| 操作 | 作用 |
|---|---|
| list | 展示標題、id、cwd、live/cold、是否運行、置頂、歸檔、事件數、磁盤大小、日誌路徑;支持文本篩選,可選顯示已歸檔 |
| archive / unarchive | 可逆,從側邊欄隱藏且不改動歷史 |
| pin / unpin | 會話固定在側邊欄頂部 |
| stop | 中斷當前回合(等同用戶點停止) |
| rename | 更新 live 會話標題並寫入 session log |
| delete | 永久移除會話日誌目錄;各入口均需明確確認;運行中會先 stop;允許刪除當前會話(內存副本在下次重啓應用後消失) |
內置側邊欄菜單會在原有 Archive 之上增加紅色 Delete session 項。設置頁路徑爲 Settings → Session management,是可搜索表格,每行帶上述操作按鈕,刪除需在行內再次確認。
環境與依賴¶
- 使用帶 Web GUI 的
dshprofile(標準dsh web組合或 Desktop)。 - 默認的 JSONL session-persistence 後端:需要它才能看到 cold 會話、磁盤大小,並執行 delete。若無該後端,除 delete 外對 live 會話的其它操作仍可用。
- 插件僅通過 Host 穩定服務註冊(tools、commands、slots、context menus、web routes),運行時不導入內部包。
安裝與啓用¶
pnpm 須在 PATH 中(可用 corepack enable pnpm)。安裝命令以 README 原文爲準:
dsh plugin --profile <profile-name> add github:Chengeat/dsh-session-management
例如裝入名爲 web 的 profile:
dsh plugin --profile web add github:Chengeat/dsh-session-management
npm 包名爲 dsh-session-management-t(無後綴名已被其它插件佔用)。發佈後也可按名安裝:
dsh plugin --profile web add dsh-session-management-t
首次從 git 源安裝時,若 pnpm 提示 allowBuilds 鍵,需把該鍵原樣寫入 profile 的 pnpm-workspace.yaml 後重跑安裝命令。
安裝完成後重啓 dsh 並刷新瀏覽器。含 Host 與 Client 兩半的 bundle 首次安裝必須重啓,模塊圖才能加載兩半。重啓後應同時出現:
- Settings → Session management 管理頁
- 側邊欄會話右鍵中的 Delete session
/sessions斜槓命令- 智能體可調用的
session_manage工具
注意:若曾用其它名稱裝過同功能副本(例如 @local/dsh-session-management),應先移除,避免兩個 bundle 同時註冊 session_manage 在激活時衝突。
典型用法¶
設置頁¶
打開 Settings → Session management,在表格中搜索會話,對單行執行歸檔、置頂、停止、重命名或刪除(刪除需點 Confirm delete)。
側邊欄¶
在側邊欄某會話上右鍵,選擇 Delete session(位於 Archive session 上方),在 toast 中確認後永久刪除日誌。
斜槓命令¶
/sessions list [filter]
/sessions archived
/sessions archive <id>
/sessions unarchive <id>
/sessions pin <id>
/sessions unpin <id>
/sessions stop <id>
/sessions rename <id> <new title>
/sessions delete <id> confirm
delete 必須帶尾隨的 confirm 纔會執行。archive / pin / stop 在 id 爲空時作用於當前會話。
智能體工具¶
可對 agent 說例如「列出所有會話」或「刪除測試會話 29d374e3」;刪除時 AI 會以 confirm="confirm" 調用工具。
工具簽名:session_manage(action, sessionId?, title?, confirm?, query?, includeArchived?, stop?)。
刪除實現上,插件通過 sessionPersistence.list() 取得各會話 location.path(例如 ~/.dsh/sessions/--<cwd>--/<id>/session.v4.jsonl.zstd),在校驗產物文件名形態後刪除整個會話所屬目錄;持久化層無 delete API,因而是有防護的直接移除。管理頁數據經 Web 服務上的 /dsh-session-management/api 提供,並做同源(Origin/Host)檢查。
適用場景與注意¶
適合誰: 長期在 dsh Web/Desktop 下開多會話、需要清點磁盤佔用、歸檔實驗會話或合規清理日誌的開發者。
權限與安全: 插件在當前 dsh 進程權限下讀寫會話目錄與調用 Host 服務;delete 不可恢復。安裝前請自行閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認與你的工作區路徑、備份策略一致。
生態說明: DSH 奉行「一切皆插件」;社區目錄站點(如 SkillHub 上的插件頁)與 DeepSeek / 幻方無官方從屬關係,本文檔描述的是第三方開源插件,非官方應用商店條目。
結尾¶
若你需要的不僅是側邊欄歸檔,而是可檢索的會話全景和經確認的磁盤級刪除,dsh-session-management 把設置頁、右鍵菜單、/sessions 與 session_manage 對齊到同一套邏輯,補上了 dsh 默認會話能力裏缺的那一塊。
- 目錄頁:https://www.skillhub.cn/plugins/Chengeat/dsh-session-management
- GitHub:https://github.com/Chengeat/dsh-session-management