Repository navigation
Releases: Bainianzzz/dsh-fork-worktree
Release list
v0.2.1
补齐 bundle manifest,并发布 0.2.1 / Manifest completeness for the bundle, released as 0.2.1.
变更 / Changed
- 声明
engines.dsh:">=0.2.1-rc.2 <0.3.0"。不满足范围的 DSH 会在安装前(点名软件包时)或启动时被拒绝,而不是装上之后才在角落里报错。上界不开放是因为 DSH 仍是 developer preview、会有破坏性变更。 - 声明
@deepseek-ai/dsh-client-ui-primitives的 peer:范围同样是">=0.2.1-rc.2 <0.3.0",不写精确 pin,避免 DSH 升级后插件因锁死版本而停止加载。用范围而非 exact 是有依据的:社区扫描显示,锁死@deepseek-ai/*peer 版本的插件在宿主升级时会失败。 - 版本号
0.2.0→0.2.1。
插件功能与代码(client.js / impl.js / cordis.patch.yml)没有任何变化,本次只动 manifest。
兼容性 / Compatibility
- 需要 DSH
0.2.1-rc.2及以上、0.3.0以下。更早或更晚的版本需要显式版本豁免(Web 插件页的兼容性提示,或dsh plugin allow-version)。 - 从
0.2.0升级:重新安装本版本并刷新页面即可。
验证 / Verification
node verify-client.mjs:51 项通过,0 失败。node verify-host.mjs:88 项通过,0 失败。npm pack产物核对:7 个文件,version为0.2.1,engines、peerDependencies、dsh.bundle.patch均正确。- tarball sha256:
ebf3bcbadad28e033d9fe38d5b811a1751640d3029885dd36694b731e2d7f4de
安装 / Install
推荐在 dsh 的插件面板里安装:打开侧栏的插件面板,点添加插件,填入 github:Bainianzzz/dsh-fork-worktree,安装完成后点立即启用。
也可以使用本 Release 的预构建 tarball(文件名沿用 npm pack 的产物名,含版本号):
dsh plugin add https://github.com/Bainianzzz/dsh-fork-worktree/releases/download/v0.2.1/bainianzzz-dsh-fork-worktree-0.2.1.tgzv0.2.0 的资产名是 dsh-fork-worktree.tgz,本版换成了 npm pack 的默认文件名,因此旧的 latest/download/dsh-fork-worktree.tgz 链接不再指向新包。需要固定链接的话请使用上面的带版本地址。
插件只用 Node 内置模块,dependencies 为空;@deepseek-ai/dsh-client-ui-primitives 由宿主提供(宿主的每个 UI 包都依赖它,正常安装的 dsh 一定具备),不需要构建授权。
v0.2.0
两个 fork 模式,以及与宿主 toast 的对齐 / Two fork modes, and a notice that behaves like the host's.
新增 / Added
- 复制文件的 fork 模式:确认框现在先选创建方式——「创建 git worktree」只检出已提交内容;「复制并创建 worktree」在检出后把 worktree 缺失的文件补齐,包括未跟踪文件与被
.gitignore忽略的内容(node_modules、.env、构建产物等)。已跟踪文件保留 HEAD 版本,相对软链按原样保留;复制失败时刚创建的 worktree 与分支一并撤销。 --copy参数:/fork-worktree [name] [--init] [--copy],与上一条的复制方式等价。- 确认框合并为一个面板,两种方式在同一处说明,底部三个按钮:「取消|创建 git worktree|复制并创建 worktree」。点哪个按钮就不用再多点一层。
中文界面里的模式文案已缩短,取消按钮改为无边框样式。
修复 / Fixed
- 通知与宿主 toast 重叠:插件的成功/失败提示原本是手写的横幅,直接复刻了宿主 Toast 的样式(
position:fixed; top:40px; z-index:1100),正好落在宿主自己 popup 的位置上,两者同时出现就会叠在一起。现在改用宿主导出的Toast组件:成功带宿主自带的对勾图标,失败使用IconWarningOutlineRegular,停留时长与淡出由组件自己管理,并按seq重新挂载以重启周期——和宿主其他所有通知的做法一致。
需要说明:这次对齐让样式与生命周期跟宿主一致,但没有消除重叠。插件通知与宿主通知仍可能同时出现在同一坐标上;要彻底解决需要让两者共用同一条通知通道,这是后续独立的工作。
验证 / Verification
node verify-client.mjs:51 项,覆盖两种 fork 模式的弹窗流程与通知契约(渲染的是宿主Toast、文本/图标/停留时长/序号 key 正确、onDone清除通知、无残留自绘类名)。node verify-host.mjs:88 项,覆盖 worktree 创建、复制模式、两种删除、dirty 拒绝与强删、路径护栏、路由契约、工作区清理。
安装 / Install:
推荐在 dsh 的插件面板里安装:
- 打开侧栏的插件面板,点添加插件。
- 填入
github:Bainianzzz/dsh-fork-worktree。 - 安装完成后点立即启用。
安装并启用后 hover 工作区行即可看到两个按钮。
也可以直接用命令行安装(两种地址二选一):
# 从 GitHub 仓库安装
dsh plugin add github:Bainianzzz/dsh-fork-worktree
# 或使用本 Release 的预构建 tarball(文件名不带版本号,latest/download/ 不会随下次发版失效)
dsh plugin add https://github.com/Bainianzzz/dsh-fork-worktree/releases/latest/download/dsh-fork-worktree.tgz插件只用 Node 内置模块,dependencies 与 peerDependencies 都是空的,不需要构建授权。通知改为宿主组件后,插件要求宿主提供 @deepseek-ai/dsh-client-ui-primitives(宿主的每一个 UI 包都依赖它,正常安装的 dsh 一定具备)。
从 v0.1.0 升级的话,重新安装本版本后刷新页面,新的 client bundle 才会加载。
v0.1.0
首个版本 / First release.
@bainianzzz/dsh-fork-worktree 在 Harness 侧边栏的工作区行加两个按钮(hover 显示,位于该行的 … 与 + 之间),点击都先弹确认框:
- fork:在该工作区所属仓库里创建一个 git worktree(同级目录
<仓库名>-wt-<label>,分支wt/<label>),注册成新的 dsh 工作区并在其中打开会话。目录不是 git 仓库时,可从同一个弹窗改为先git init(把当前内容提交为第一个提交)再创建。 - 垃圾桶:删除该工作区的文件夹。linked worktree 走
git worktree remove(仓库的worktrees/元数据一起清掉);有未提交修改或未跟踪文件时先问一次,确认后才--force;其他目录直接删除。删完移除工作区登记;目录被外部删掉时,2 秒一次的扫描也会收掉那一行。
另有 /fork-worktree [name] [--init] 命令,是同一套逻辑的第二个入口。
安装 / Install:
dsh plugin add github:Bainianzzz/dsh-fork-worktree或使用本 Release 的预构建 tarball(文件名不带版本号,latest/download/ 不会随下次发版失效):
dsh plugin add https://github.com/Bainianzzz/dsh-fork-worktree/releases/latest/download/dsh-fork-worktree.tgz只用 Node 内置模块,dependencies 与 peerDependencies 都是空的,不需要构建授权。node verify-host.mjs 的 61 项检查覆盖 Host 侧逻辑(worktree 创建、两种删除、dirty 拒绝与强删、路径护栏、两个路由的契约、工作区清理)。