dsh-session-management:在 DSH 裏集中管理會話與真刪除

前言

在 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,是可搜索表格,每行帶上述操作按鈕,刪除需在行內再次確認。

環境與依賴

  1. 使用帶 Web GUI 的 dsh profile(標準 dsh web 組合或 Desktop)。
  2. 默認的 JSONL session-persistence 後端:需要它才能看到 cold 會話、磁盤大小,並執行 delete。若無該後端,除 delete 外對 live 會話的其它操作仍可用。
  3. 插件僅通過 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
羽毛球分组比赛记分
小程序二维码

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

小夜