dsh-worktree

by Eleven-is-cool

0 开发与运行时github未核验到 manifest收录于 08-17

DeepSeek Harness web 的 Git worktree 插件:在工作区面板浏览与创建 worktree

Git worktree plugin for DeepSeek Harness web: browse/create worktrees from the workspace panel

安装

dsh plugin --profile web add github:Eleven-is-cool/dsh-worktree

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

适用于 DeepSeek Harness Web 界面的 Git worktree 插件:在侧边栏工作区里浏览仓库的全部 worktree、一键把某个 worktree 注册为工作区并打开,以及基于已有或新建分支创建 worktree。

English | 简体中文

组成

包 作用
packages/worktree (@eleven-is-cool/dsh-worktree) 宿主侧 worktree Remote 服务(resolve / list / branches / create,全部通过 execFile 调用 Git,不经过 shell)以及客户端组装部分(把 worktree 命名空间挂到根作用域)
packages/client-ui-worktree (@eleven-is-cool/dsh-client-ui-worktree) 浏览器面板:worktree 列表、打开操作和新建表单

安装

要求:dsh 的 Web profile(dsh web)、DSH >= 0.1.0-rc.5,且本机已安装 Git。

git clone https://github.com/Eleven-is-cool/dsh-worktree.git
cd dsh-worktree
dsh plugin --profile web add link:"$PWD"/packages/worktree
dsh plugin --profile web add link:"$PWD"/packages/client-ui-worktree

然后**重启 dsh web**并刷新页面。

两个包都内置了构建产物(lib/、remote/),直接通过 link: 安装即可使用,无需在安装时执行构建。

两个入口

  1. 工作区行 ... 菜单 → Git worktree(推荐,按每个项目打开)。该入口的槽位由 ui-workspace 补丁声明,官方 DSH 默认没有。应用 patches/ui-workspace-workspaceMenu.patch 到 DeepSeek Harness 源码并重建 dsh-client-ui-workspace 后生效,详见下方“ui-workspace 补丁”。
  2. 侧边栏底部 Settings 旁的 Git 分支图标按钮(兜底入口)。该入口打开当前工作区的 worktree 面板,官方 DSH 无需任何补丁即可使用。

ui-workspace 补丁(可选,解锁 ... 菜单入口)

面板插件的“三个点”入口需要 ui-workspace 声明一个扩展槽位。官方仓库尚未合入该槽位,补丁见 patches/ui-workspace-workspaceMenu.patch:

cd <deepseek-harness 源码>
git apply <本仓库>/patches/ui-workspace-workspaceMenu.patch
pnpm install
pnpm --filter @deepseek-ai/dsh-client-ui-workspace exec tsc -b
cd packages/client/ui-workspace
pnpm exec tsdown
dsh plugin --profile web add link:"$PWD"

重启 dsh web 后,每个工作区行的 ... 菜单会多出 Git worktree 项。

使用

  • 打开面板:列出仓库的全部 worktree(主 worktree、锁定标记、分支名和路径),点“打开”把该目录注册为 DSH 工作区并打开会话。
  • 新建 worktree:输入分支名(自动补全本地分支)。输入已有分支则签出它;输入新名字会自动勾选“新建分支”。目标目录留空则建在仓库同级的 <仓库名>-<分支名>。创建成功后自动在工作区打开。
  • 工作区目录本身不是 Git 仓库时,面板会扫描其直接子目录,列出可选仓库。

开发

pnpm install
pnpm build

pnpm build 会对两个包执行 TypeScript 编译和 tsdown,其中包括浏览器 bundle。客户端代码修改后需重新执行 pnpm build 并刷新页面;宿主侧改动还需重启 dsh web。

限制

  • 暂不支持删除、prune 或移动 worktree。
  • 自定义目标路径校验目前仅支持 POSIX 风格的绝对路径。
  • 工作区行 ... 菜单入口需要可选的上游补丁。
  • typert 产物(remote/remote-client.js、lib/typert.host.js)是手写的生成器镜像,增删 Remote 方法时需同步更新两个文件。

许可证

MIT。

原始 README: https://github.com/Eleven-is-cool/dsh-worktree/blob/main/README.zh-CN.md ↗