Skip to content

Releases: Bainianzzz/dsh-fork-worktree

v0.2.1

Choose a tag to compare

@Bainianzzz Bainianzzz released this 19 Oct 07:19

补齐 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.tgz

v0.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

Choose a tag to compare

@Bainianzzz Bainianzzz released this 18 Oct 14:35

两个 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 的插件面板里安装:

  1. 打开侧栏的插件面板,点添加插件。
  2. 填入 github:Bainianzzz/dsh-fork-worktree。
  3. 安装完成后点立即启用。

安装并启用后 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

Choose a tag to compare

@Bainianzzz Bainianzzz released this 14 Oct 10:47

首个版本 / 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 拒绝与强删、路径护栏、两个路由的契约、工作区清理)。