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 界面的情况下,快速进入新分支进行开发或测试。

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

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

小夜