DeepSeek Harness (DSH) 的會話元數據(cwd)在創建時即被凍結,這使得在運行時動態切換工作目錄變得困難。通常的做法是手動 Fork 會話,但這需要用戶在後臺執行一系列命令。
dsh-worktree-jump 插件將這一流程封裝到了 New-Conversation 界面中。它提供了一個觸發器,允許你在選擇工作區時直接創建一個 Git Worktree,並將新會話 Fork 到該目錄下,從而實現無縫的上下文切換。
插件簡介¶
dsh-worktree-jump 是一個 DeepSeek Harness (DSH) 插件。它通過一個觸發器,從選定的文件夾創建 Git Worktree,並讓對話直接在該 Worktree 中開始。
- 維護者:frederico-kluser
- 分類:工作流
- 許可證:MIT
核心功能¶
- New-Conversation 觸發器:在 New-Conversation 界面左側出現一個芯片(
🌿 New worktree),點擊即可創建或選擇 Worktree。 - 會話 Fork 機制:利用
meta.cwd覆蓋機制,將 Fork 後的會話目錄指向新創建的 Worktree,同時保留源會話的上下文。 - 現有 Worktree 支持:除了創建新 Worktree,也可以直接選擇已存在的 Worktree 並在其中開始對話。
- 本地化:支持英語(默認)、簡體中文和葡萄牙語。
- 零運行時依賴:插件爲獨立的 ESM 模塊,無需額外的運行時庫。
- 名稱驗證:支持 1-64 個字符的文件系統安全名稱驗證。
- 自動排除:通過
.git/info/exclude自動排除 Worktree 根目錄。
安裝與啓用¶
插件使用 Bundle 安裝方式。安裝後需要重啓 dsh web 才能看到效果。
dsh plugin --profile web add github:frederico-kluser/dsh-worktree-jump
注意:
* 此插件依賴 DSH cordis 版本 >=4.0.0 <5。
* 重要:如果使用 Bundle 安裝,不要在配置文件中手動添加 - insert: 行。Bundle 安裝和手動 Patch 插入使用的是同一個加載器條目 ID (worktree-jump),同時啓用會導致衝突。
* 插件爲純 ESM,無構建依賴。
典型用法¶
在 New-Conversation 界面中,插件會在“選擇工作區”選擇器的左側顯示一個芯片。
- 點擊
🌿 New worktree芯片。 - 在彈出的對話框中輸入 Worktree 名稱(例如
my-feature)。 - 確認後,會話將在
<repo>/.worktrees/<name>目錄下開始。 - 如果你已有現有的 Worktree,對話框中會顯示按鈕列表,點擊即可直接進入該目錄,無需創建新目錄。
注意事項¶
- 單一激活路徑:請勿同時使用 Bundle 安裝和手動 Patch 注入。兩者都指向
worktree-jump條目,會導致啓動時出現duplicate loader entry id錯誤。 - 會話行爲:Fork 操作會保留源會話的完整歷史記錄(如果是已有會話),或者是作爲一個全新的空白會話(如果是空白會話)。原始會話保持不變。
- 文件系統權限:插件以 DSH 進程的權限運行,請確保你有權限在目標倉庫目錄下執行 Git 命令。
總結¶
dsh-worktree-jump 解決了 DSH 環境下切換開發上下文繁瑣的問題。通過將 Worktree 創建與會話 Fork 合併爲一步操作,開發者可以在不離開 UI 界面的情況下,快速進入新分支進行開發或測試。