前言¶
DeepSeek Harness (DSH) 採用插件化架構,但在會話管理和消息回溯方面,現有功能往往停留在基礎層面。例如,快速找回上一條發送的消息、在工作區左側列表中徹底刪除不再需要的會話記錄,通常需要額外的操作或依賴不完善的歸檔機制。
heeweelee/dsh-session-plugin 旨在解決這兩個具體痛點:通過鍵盤快捷鍵在輸入框回填歷史消息,以及通過右鍵菜單提供文件級的會話徹底刪除能力。該插件由 Heeweelee 維護,開源協議爲 MIT,適合需要在本地持久化會話數據並精細化管理的開發者使用。
核心功能¶
輸入框歷史回填¶
插件會在輸入框聚焦時監聽鍵盤事件,支持快速回填和切換已發送的消息。
- 基礎回填:在輸入框聚焦時按
↑鍵,會回填上一條你發過的消息。繼續按↑/↓可以在歷史記錄中上下切換。 - 草稿處理:如果輸入框中有草稿,按
↑會先暫存草稿,然後回填上一條歷史消息;按↓走到底後恢復進入回填前的草稿內容(無草稿則清空輸入框)。 - 歷史列表與搜索:在會話標題欄的“↑ 歷史 N”按鈕旁點擊
▾,可以打開可搜索的歷史列表。點擊列表中的條目即可回填,點擊條目右側的×可以隱藏該條目(僅隱藏回填提示,不改變會話記錄)。
會話右鍵徹底刪除¶
DSH 官方通常只提供歸檔(隱藏)接口,而本插件提供了文件級的刪除能力。
- 觸發方式:在工作區左側的會話列表中,右鍵點擊某個會話,選擇“刪除該會話…”。
- 執行邏輯:二次確認後,插件會永久刪除該會話的本地日誌文件(
session.jsonl或session.jsonl.zstd及其空父目錄),並從工作區列表中徹底移除該行(0.1.9 版本起不再留下可點擊的幽靈行)。 - 狀態檢查:如果會話正在生成中(
agent.status === 'running')或存在未完結的後臺任務,刪除操作會被拒絕(返回 409 錯誤)。此時無需切換會話,等待當前任務完成後即可再次嘗試刪除。 - 注意事項:刪除是永久性的,不可恢復。如果刪除的是當前正在查看的會話,請務必在確認後切換到其他會話,否則繼續發送消息會重建該會話的記錄。
安裝與啓用¶
使用官方 CLI 安裝指定版本:
dsh plugin add @heeweelee/dsh-session-plugin@0.1.11
或在 DSH Desktop 的 設置 > 插件 市場中搜索安裝。安裝後必須重啓 DSH 使插件生效。
配置¶
插件支持通過配置文件調整行爲。在 DSH 的主目錄(默認 ~/.dsh)下創建 dsh-session-plugin.json 文件:
{ "historyLimit": 100, "maxCharsPerEntry": 4000, "disableDiskCache": false }
配置項說明:
historyLimit(默認 100,上限 10000):每會話保留最近 N 條用戶消息。修改後需重啓 DSH 生效。調大後舊緩存會被視爲過期並自動重讀補滿窗口。maxCharsPerEntry(默認 4000,上限 20000):單條回填文本的截斷長度,防止超大粘貼撐爆內存或磁盤。超長文本會在末尾添加“…(已截斷)”。disableDiskCache(默認 false):設爲true則不寫磁盤緩存(僅內存 1s TTL),適合不希望明文落盤的機器。開啓後啓動時會自動刪除舊緩存文件。
技術實現與安全¶
API 接口¶
插件通過 Host 提供三個同源、無鑑權的進程內接口:
GET /api/dsh-session-plugin/history?sessionId=:只讀獲取指定會話的用戶消息文本歷史。GET /api/dsh-session-plugin/sessions:只讀獲取會話列表({id, title})。POST /api/dsh-session-plugin/delete:徹底刪除本地會話記錄(不可恢復)。
安全與權限¶
- 防 CSRF:刪除路由要求請求攜帶自定義頭
x-dsh-csrf: 1,且Origin爲空或與本機同源,以防止跨站頁面發起簡單 POST 請求導致誤刪。 - 文件校驗:刪除前會對文件路徑進行嚴格校驗,僅允許刪除符合會話產物形態(
session.jsonl或session.jsonl.zstd)的文件,防止誤刪系統文件。 - 本地權限:插件以本地用戶權限運行,沒有運行期 npm 依賴。
依賴與環境¶
- DSH 版本:依賴 DSH 運行時
>=0.1.0-rc.7。 - Node 版本:需要 Node.js 版本
^22.19.0 || >=24(與 DSH Desktop 內置運行時一致)。 - 兼容性:插件支持 DSH 2.0.4 引入的 Lexical 編輯器形態以及舊版的
<textarea>形態,輸入框回填功能在兩種形態下均可正常工作。
結語¶
heeweelee/dsh-session-plugin 通過提供精細化的輸入歷史管理和文件級會話刪除能力,增強了 DSH 的本地數據控制力。對於需要頻繁清理歷史記錄或需要嚴格管理本地會話日誌的開發者,該插件是一個實用的工具。
- 插件目錄頁:https://www.skillhub.cn/plugins/Heeweelee/dsh-session-plugin
- GitHub 倉庫:https://github.com/Heeweelee/dsh-session-plugin