dsh-session-input-history: 會話隔離的輸入歷史導航插件

在 DeepSeek Harness (DSH) 的使用場景中,開發者經常需要在不同的對話會話間切換,或者快速重用之前的輸入。如果依賴全局的歷史記錄,切換會話時舊的輸入內容往往會干擾當前會話,導致輸入污染。dsh-session-input-history 解決了這一問題。

這是一個由 czhzz 維護的純客戶端插件,旨在爲當前會話提供 Shell 風格的輸入歷史導航能力。

核心功能

該插件主要提供以下能力:

  • 會話隔離的輸入歷史導航:歷史記錄嚴格限定在當前會話內,不受其他會話或工作區輸入污染。切換會話後,歷史記錄自動重置爲新會話的內容。
  • Shell 歷史式交互:在對話輸入框中,使用 ↑ 和 ↓ 方向鍵即可遍歷當前會話發送過的消息。
  • 純客戶端實現:無後端交互,無 UI 常駐組件。
  • 不落盤存儲:歷史數據僅存在於內存中,關閉頁面即清空。

安裝與配置

安裝該插件需要通過 DSH 的命令行工具執行。

dsh plugin --profile web add dsh-session-input-history

安裝完成後,插件會自動掛載到輸入框左側的插槽 conversation.input.left,並依賴 @deepseek-ai/dsh-client-ui-conversation 組件。

交互方式

插件接管方向鍵的邏輯如下:

  • ↑(上箭頭):在草稿爲空時,載入最新的一條歷史消息。再次按下則繼續向前(更舊)。
  • ↓(下箭頭):在瀏覽歷史時向後翻頁。當瀏覽到最新一條消息後再次按下,將清空輸入框並退出瀏覽狀態。
  • 編輯與發送:在瀏覽歷史的過程中,可以直接編輯當前消息內容,或直接發送當前載入的消息。發送或編輯操作會立即退出瀏覽狀態。

技術實現與注意事項

  • 依賴關係:插件依賴 @deepseek-ai/dsh-client-ui-conversation,需確保該依賴已正確安裝。
  • 鍵盤事件:插件僅在輸入框獲得焦點時接管方向鍵,且不處理任何組合鍵(如 Ctrl、Alt、Shift 等),保證編輯器的原生功能不受影響。
  • 實現架構:插件分爲 Host 側(空 apply,無額外行爲)和 Client 側。Client 側包含一個純邏輯的歷史提取模塊和一個狀態機,負責處理鍵盤輸入與輸入框草稿的讀寫。
  • 卸載:如需移除,可執行:
dsh plugin --profile web remove dsh-session-input-history

結語

dsh-session-input-history 提供了一種輕量級、無狀態的方式來管理 DSH 中的輸入歷史,特別適合需要頻繁切換會話的開發者。通過命令行即可完成安裝,無需額外的配置文件。

羽毛球分组比赛记分
小程序二维码

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

小夜