DeepSeek Harness 插件:dsh-session-reattach

前言

DeepSeek Harness (DSH) 的設計理念是「一切皆插件」。在使用過程中,經常會遇到會話被移動過、或者在工作區目錄尚未創建時就已建立會話的情況。此時,這些會話會被標記爲「未分組」,且在 WorkspaceRegistry 初始化後不再被自動重新收養,從而永久停留在未分組列表中。

dsh-session-reattach 旨在填補這個空白。它不改變會話文件本身,僅通過校驗會話的當前工作目錄(cwd),將其歸屬記錄重新寫入正確的工作區。

插件定位

這是一款 DSH 宿主插件,用於解決歷史會話的「歸位」問題。它將游離的會話按 cwd 歸位到匹配的工作區分組中。

核心功能

  • 只改歸屬記錄:插件僅修改 workspace.json 中的歸屬記錄,不觸碰 session.l.zstd 等會話文件本身。
  • 默認 dry-run:爲了安全,默認只進行校驗和報告,不執行寫入,直到顯式開啓寫入模式。
  • 支持多種入口:既支持側邊欄的拖拽操作,也支持命令行輸入。
  • 零運行時依賴:不依賴任何 DSH 內部包或第三方庫。

安裝與啓用

該插件僅支持 web profile。

  1. 執行安裝命令:
    dsh plugin --profile web add dsh-session-reattach
  1. 安裝完成後,必須重啓 dsh web。宿主插件在啓動時裝配,安裝後不重啓不會生效。

使用方式

命令行

插件提供三個命令入口,默認處於 dry-run 狀態:

  • /reattach:僅報告將歸位哪些會話、哪些會話無法歸位及原因,不寫入。
  • /reattach apply:執行歸位寫入操作。
  • /reattach apply subagents:在執行歸位的同時,也處理子代理會話(默認跳過子代理)。

拖拽操作

在側邊欄展開「未分組」,按住某個會話行開始拖動。只有 cwd 與工作區目錄完全一致的分組會顯示虛線框,其餘分組顯示禁止光標,拖拽進去鬆手即可歸位。

歸位判定規則

插件使用 fs.realpath 將會話的 cwd 與工作區路徑歸一化後進行比較。只有路徑完全一致纔會進行歸屬。歸位前會先從其他工作區清除該會話的舊槽位,避免雙歸屬錯誤。

注意事項

  • 默認安全策略:所有歸位操作默認不寫入,必須顯式傳入 false 或使用 apply 參數。
  • Web Profile 限制:僅支持 web profile,安裝後必須重啓 dsh web。
  • 路徑一致性:歸位的前提是 cwd 存在且有效。如果目錄被刪除、重命名或不可訪問,會話將被跳過。
  • 子代理處理:默認跳過子代理會話,除非顯式指定 apply subagents。
  • 文件安全:插件不修改會話文件本身,只修改歸屬記錄,不會造成數據丟失或內容篡改。

總結

dsh-session-reattach 是一個輕量級的修復工具,專門處理 DSH 中因歷史原因導致的會話歸屬錯位。通過拖拽或命令行,可以快速將游離會話歸位到正確的工作區,保持側邊欄結構的整潔。

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

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

小夜