前言¶
DeepSeek Harness(DSH)內置的會話能力側重創建、重命名、分叉和取消;工作區註冊表可以把會話歸檔,但不會把磁盤上的會話目錄一併清掉。長期開發時,側邊欄裏會堆滿試過的會話:歸檔能隱藏默認列表裏的行,卻刪不掉 $DSH_HOME/sessions 下的記錄,也談不上「徹底不要這份上下文」。下面介紹社區插件 dsh-session-delete(GitHub:Fragmented-Chaos/dsh-session-delete),它在 Web 客戶端側邊欄提供刪除入口,並在 Host 側按既定順序歸檔、刪目錄、廣播移除事件。
這是什麼¶
dsh-session-delete 是 DSH 的「記憶」類插件:在側邊欄對單個 Session 做永久刪除——而不只是從當前視圖隱藏。維護者爲 Fragmented-Chaos;package.json 中版本爲 1.0.0,許可證 MIT,倉庫簡介爲「DeepSeek Harness plugin: permanently delete a session」。更完整的說明寫在源碼註釋裏:刪除會同時處理側邊欄行、歸檔/固定等註冊表狀態,以及 $DSH_HOME/sessions 下對應目錄(見倉庫 index.js 文件頭註釋)。
DSH 生態主張「一切皆插件」;插件目錄站點 SkillHub 由社區維護,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
插件分爲 Host(index.js)與 Web Client(client.js),通過 cordis.patch.yml 把 Host 模塊 @local/dsh-session-delete 掛入 bundle;Client 在 package.json 的 dsh.client 中聲明爲 web 平臺,且 immediately: true,加載後即可向側邊欄插槽註冊 UI。
Host:刪除流程與 API¶
Host 註冊的 HTTP 路由(均需與瀏覽器 Index 相同的鑑權,見 guarded):
| 路徑 | 方法 | 作用 |
|---|---|---|
/api/dsh-session-delete/delete |
POST | 執行刪除或 dryRun 探測 |
/api/dsh-session-delete/state |
(只讀探測) | 開發用:當前 Host 可見的會話與 busy 狀態 |
對一次 POST 刪除,Host 側邏輯(源碼註釋歸納)大致爲:
- 若會話仍有進行中的回合、子代理、後臺任務或定時提醒等活動,拒絕刪除(HTTP 409,
session-running),需用戶先停止再試。 - 先歸檔,使側邊欄默認過濾下持久隱藏該行,並在當前選中該會話時切走。
- 刪除
$DSH_HOME/sessions(默認~/.dsh/sessions)下該sessionId的所有目錄。 - 發出
api-session/removed,讓各界面立即去掉該行;歸檔項在下次啓動時由pruneStaleArchives清理已無文件的殘留條目。
請求體爲 JSON,例如探測是否在運行:
{ "sessionId": "session-xxxxxxxx", "dryRun": true }
正式刪除:
{ "sessionId": "session-xxxxxxxx" }
每次嘗試會追加一行 JSON 到 $DSH_HOME/session-delete.log(文件超過約 512KB 會輪轉),便於事後覈對拒絕或失敗原因。
Client:側邊欄入口與確認¶
Client 向以下插槽註冊組件(見 client.js 文件頭):
sidebar.workspaces.session.menu.item:會話「…」菜單中的 「刪除會話」。sidebar.workspaces.session.row.action:行懸停時的垃圾桶按鈕。shell.overlay:居中確認卡片(說明會連同磁盤記錄刪除)與刪除成功提示。
確認後 Client 對 /api/dsh-session-delete/delete 發起 POST;若當前主視圖正打開被刪會話,會嘗試切換到同工作區相鄰會話或新建會話,避免界面停在已不存在的會話上。
安裝與啓用¶
倉庫當前沒有獨立的 README 文件;SkillHub 目錄頁標註「暫時沒有 README」,安裝以目錄給出的插件標識爲準。
在 SkillHub 插件頁 使用「發送給 DeepSeek Harness 安裝」時,交給 DSH 的說明形如:
請安裝 DSH 插件 Fragmented-Chaos/dsh-session-delete
DSH 會讀取後端安裝計劃後執行安裝。請勿在未覈對文檔的情況下自行拼接未在資料中出現的 shell 安裝命令。
安裝前建議在 GitHub 瀏覽 index.js、client.js 與 LICENSE,確認行爲與權限可接受;插件以當前 DSH 進程的用戶權限讀寫 $DSH_HOME 並刪除目錄。
典型用法¶
- 在 DSH Web 客戶端打開側邊欄,定位要清理的會話。
- 點擊該行「…」菜單中的 刪除會話,或懸停行後點垃圾桶圖標。
- 在確認對話框中閱讀提示(含磁盤記錄一併刪除),點擊 刪除。
- 若會話仍在運行,界面會提示先停止(對應 Host 的
session-running);停止後重復上述步驟。
刪除成功後會出現短時頂部提示;操作不可撤銷(與歸檔可撤銷不同)。
適用場景與注意¶
適合:本地長期跑 DSH、側邊欄會話過多,需要真正釋放磁盤上的會話目錄,而不是僅歸檔隱藏。
注意:
- 刪除不可恢復;確認前請自行備份仍需保留的會話數據。
- 僅在有 Web 客戶端的場景下提供 UI;Host API 仍依賴已登錄瀏覽器的 Index 鑑權。
- 插件分類爲「記憶」,本質是管理會話生命週期與本地存儲,不涉及模型記憶服務的額外配置項(資料中未列出可配置字段)。
- 安裝即授予其刪除
$DSH_HOME/sessions下匹配目錄的能力,務必在信任源碼與 MIT 許可證的前提下使用。
結尾¶
dsh-session-delete 補上了 DSH 默認能力裏缺失的「永久刪除會話」路徑:側邊欄可操作,Host 側歸檔、刪盤、通知各界面同步。需要安裝標識或概覽時可打開 SkillHub 目錄頁;實現細節與問題反饋見 GitHub 倉庫:
- 目錄頁:https://www.skillhub.cn/plugins/Fragmented-Chaos/dsh-session-delete
- 源碼:https://github.com/Fragmented-Chaos/dsh-session-delete