dsh-git-flow:DeepSeek Harness 工作区 Git 插件

在 DeepSeek Harness 中,开发者经常需要在会话上下文内直接管理仓库。dsh-git-flow 插件在 Composer 工具栏中提供了一个分支芯片。打开它,可以浏览、切换分支,创建新分支,并对选中的文件子集进行提交——提交消息由会话模型根据 diff 自动生成。

安装

插件依赖 Node ^22.19.0 || >=24.0.0 和 pnpm 10。

使用官方安装命令:

dsh plugin --profile gitflow-web add https://github.com/hunan36/dsh-git-flow

安装后,请在插件页面启用该插件。

功能概览

该插件提供以下核心功能:

  1. 浏览分支
  2. 切换分支
  3. 创建分支
  4. 提交选中的文件子集
  5. 提交消息由会话模型根据 diff 自动生成
  6. Push(推送)

使用方式

在 Composer 工具栏中,点击分支芯片(例如 [⑂ feature/login 3])打开菜单。菜单支持以下操作:

  • 搜索分支
  • 查看本地分支
  • 新建分支
  • 提交(Commit,仅在工作区有变更时启用)
  • 刷新状态

安全边界与行为细节

插件在实现上做了以下安全与行为限制:

  • 会话隔离:浏览器只发送 sessionId,主机根据该会话解析仓库路径。页面无法指定 Git 运行的目录。
  • 命令执行安全:参数总是以数组形式传递,不使用 shell 字符串。配置 stdin: 'ignore' 和 GIT_TERMINAL_PROMPT=0,确保凭证提示不会挂起调用。
  • Push 行为:push 命令永远不会传递 --force 或 --force-with-lease,仅推送当前分支到上游(若上游不存在则自动设置)。
  • 提交范围:提交面板仅暂存面板中勾选的文件。若未选中任何文件,会返回 git/no-files-selected,不会回退到隐式的 git add -A。
  • 分支切换:当工作区有未提交变更时,默认拒绝切换分支(返回 git/dirty-worktree)。仅当用户在确认对话框中点击第二次时,才会发送 --force 强制切换。
  • 丢弃变更:仅在确认对话框中选择破坏性操作后执行。已跟踪路径回退到 HEAD(git restore --source=HEAD --staged --worktree),未跟踪路径被移除(git clean -fd,不包含 -x,保留忽略文件),冲突路径被拒绝而非自动猜测。

依赖项

  • Node.js: ^22.19.0 || >=24.0.0
  • pnpm: 10

结语

dsh-git-flow 将 Git 操作直接嵌入到 DSH 会话流中,通过 AI 辅助生成提交信息,减少了手动编写 Commit Message 的成本。

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

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

小夜