dsh-worktree-jump:在 New-Conversation 中創建 Git Worktree 並開始對話

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

核心功能

  1. New-Conversation 觸發器:在 New-Conversation 界面左側出現一個芯片(🌿 New worktree),點擊即可創建或選擇 Worktree。
  2. 會話 Fork 機制:利用 meta.cwd 覆蓋機制,將 Fork 後的會話目錄指向新創建的 Worktree,同時保留源會話的上下文。
  3. 現有 Worktree 支持:除了創建新 Worktree,也可以直接選擇已存在的 Worktree 並在其中開始對話。
  4. 本地化:支持英語(默認)、簡體中文和葡萄牙語。
  5. 零運行時依賴:插件爲獨立的 ESM 模塊,無需額外的運行時庫。
  6. 名稱驗證:支持 1-64 個字符的文件系統安全名稱驗證。
  7. 自動排除:通過 .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 界面中,插件會在“選擇工作區”選擇器的左側顯示一個芯片。

  1. 點擊 🌿 New worktree 芯片。
  2. 在彈出的對話框中輸入 Worktree 名稱(例如 my-feature)。
  3. 確認後,會話將在 <repo>/.worktrees/<name> 目錄下開始。
  4. 如果你已有現有的 Worktree,對話框中會顯示按鈕列表,點擊即可直接進入該目錄,無需創建新目錄。

注意事項

  • 單一激活路徑:請勿同時使用 Bundle 安裝和手動 Patch 注入。兩者都指向 worktree-jump 條目,會導致啓動時出現 duplicate loader entry id 錯誤。
  • 會話行爲:Fork 操作會保留源會話的完整歷史記錄(如果是已有會話),或者是作爲一個全新的空白會話(如果是空白會話)。原始會話保持不變。
  • 文件系統權限:插件以 DSH 進程的權限運行,請確保你有權限在目標倉庫目錄下執行 Git 命令。

總結

dsh-worktree-jump 解決了 DSH 環境下切換開發上下文繁瑣的問題。通過將 Worktree 創建與會話 Fork 合併爲一步操作,開發者可以在不離開 UI 界面的情況下,快速進入新分支進行開發或測試。

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

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

小夜