DeepSeek Harness 插件:輸入歷史回填與會話徹底刪除

前言

DeepSeek Harness (DSH) 採用插件化架構,但在會話管理和消息回溯方面,現有功能往往停留在基礎層面。例如,快速找回上一條發送的消息、在工作區左側列表中徹底刪除不再需要的會話記錄,通常需要額外的操作或依賴不完善的歸檔機制。

heeweelee/dsh-session-plugin 旨在解決這兩個具體痛點:通過鍵盤快捷鍵在輸入框回填歷史消息,以及通過右鍵菜單提供文件級的會話徹底刪除能力。該插件由 Heeweelee 維護,開源協議爲 MIT,適合需要在本地持久化會話數據並精細化管理的開發者使用。

核心功能

輸入框歷史回填

插件會在輸入框聚焦時監聽鍵盤事件,支持快速回填和切換已發送的消息。

  1. 基礎回填:在輸入框聚焦時按 ↑ 鍵,會回填上一條你發過的消息。繼續按 ↑/↓ 可以在歷史記錄中上下切換。
  2. 草稿處理:如果輸入框中有草稿,按 ↑ 會先暫存草稿,然後回填上一條歷史消息;按 ↓ 走到底後恢復進入回填前的草稿內容(無草稿則清空輸入框)。
  3. 歷史列表與搜索:在會話標題欄的“↑ 歷史 N”按鈕旁點擊 ▾,可以打開可搜索的歷史列表。點擊列表中的條目即可回填,點擊條目右側的 × 可以隱藏該條目(僅隱藏回填提示,不改變會話記錄)。

會話右鍵徹底刪除

DSH 官方通常只提供歸檔(隱藏)接口,而本插件提供了文件級的刪除能力。

  1. 觸發方式:在工作區左側的會話列表中,右鍵點擊某個會話,選擇“刪除該會話…”。
  2. 執行邏輯:二次確認後,插件會永久刪除該會話的本地日誌文件(session.jsonl 或 session.jsonl.zstd 及其空父目錄),並從工作區列表中徹底移除該行(0.1.9 版本起不再留下可點擊的幽靈行)。
  3. 狀態檢查:如果會話正在生成中(agent.status === 'running')或存在未完結的後臺任務,刪除操作會被拒絕(返回 409 錯誤)。此時無需切換會話,等待當前任務完成後即可再次嘗試刪除。
  4. 注意事項:刪除是永久性的,不可恢復。如果刪除的是當前正在查看的會話,請務必在確認後切換到其他會話,否則繼續發送消息會重建該會話的記錄。

安裝與啓用

使用官方 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
羽毛球分组比赛记分
小程序二维码

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

小夜