dsh-git-component:给 DeepSeek Harness WebUI 加一个 Git 面板

前言

用 DeepSeek Harness(DSH)的 WebUI 工作时,看当前仓库改了什么、提交、推送,通常要切回终端敲 git statusgit commit,一来一回容易打断手头的事。

dsh-git-component 解决的就是这个问题:它在 WebUI 右侧挂一个悬浮面板,实时显示工作区变更,提交和推送直接在面板里完成,提交信息留空还能自动生成。下面介绍这个插件的定位、功能、安装和用法。

这是什么

dsh-git-component 是 DeepSeek Harness Web GUI 的 Git 插件,由 nieyunliang 维护,MIT 协议,当前版本 0.1.1。

它悬浮在窗口右侧(376px 宽,透明卡片风),可以把当前更改按「已暂存 / 未暂存 / 未跟踪」三组展示,并支持提交、提交并推送、推送三种操作。提交信息留空时,自动用当前默认模型生成中文提交信息。

核心功能

查看变更

  • 右侧悬浮面板,可折叠为右上角的 Git 分支小图标,需要时再展开。
  • 三个分组:已暂存 / 未暂存 / 未跟踪,底层用 git status 的 porcelain v1 输出做精确解析,重命名文件也能正确归类。
  • 点击文件名可内联查看 diff,最多显示 400 行。
  • 每 15 秒自动刷新一次。

提交与推送

  • 三种操作:提交、提交并推送、推送(推送当前分支到上游)。
  • 提交前会自动执行 git add -A 暂存全部更改。
  • 提交信息留空时,点提交会自动用当前默认模型生成中文提交信息(不超过 60 字,单行),然后提交。
  • 面板里支持 Ctrl/⌘+Enter 快捷提交。

会话跟随与执行方式

  • git 命令在当前会话的工作目录下执行,插件会自动用 git rev-parse --show-toplevel 定位仓库根;切换会话或工作区后面板自动重载。
  • 操作通过宿主的 shell 服务执行 git,按会话沙箱策略走,不会放宽当前的文件权限模式;同时设置 GIT_TERMINAL_PROMPT=0,禁止 git 弹交互提示。

安装与启用

要求:web profile(提供 webServershell 服务)、Node ≥ 22、Git ≥ 2.x。插件零运行时依赖,不引入其他包。

从 GitHub 安装(git 源,推荐):

dsh plugin --profile web add github:nieyunliang/dsh-git-component

安装后需要重启 webui 进程才能生效——Node 的模块缓存不会热替换旧代码。

关于构建脚本:本插件没有构建脚本,git 源安装通常不需要额外的 prepare/allowBuilds 配置;如果 pnpm 仍提示构建脚本被拦截,再在 profile 的 pnpm-workspace.yamlallowBuilds 中加入对应 key 后重试。

典型用法

  1. 重启后打开 WebUI,右侧出现 Git 面板(右上角小分支图标可展开/收起)。
  2. 面板显示当前仓库的三个分组与变更文件;点击文件可查看 diff。
  3. 提交:填入提交信息后点「提交」或「提交并推送」(或直接 Ctrl/⌘+Enter);提交前会自动 git add -A 暂存全部更改。
  4. 留空提交信息:点提交后自动生成 AI 提交信息并提交。
  5. 「推送」按钮把当前分支推送到上游。

如果是本地开发调试,想从源码目录安装或重装,在插件的父目录执行:

dsh plugin --profile web add ./dsh-git-component

再用下面这条命令确认配置里已出现 git-component 这一行,然后重启 webui 进程:

dsh --profile web --dump-config | grep git-component

适用场景与注意事项

适合在 WebUI 里以会话为单位驱动开发的人:边看智能体改代码、边核对变更并提交,不用来回切终端。

几点需要注意:

  • 面板的 git 操作与在终端里敲等价命令的风险一致,尤其是提交前自动 git add -A 会暂存全部更改,提交前先确认面板里的文件列表。
  • 插件以当前 dsh 进程的权限运行,按会话沙箱策略执行,不会放宽文件权限模式;但安装任何第三方插件前,都建议先检查源码与许可证。本项目采用 MIT 协议。
  • 从本地源码目录安装时,必须在插件的父目录执行命令。

小结

dsh-git-component 把查看变更、diff、提交、推送这几步收进 WebUI 右侧的一个面板,配合 AI 自动生成提交信息,减少在终端和界面之间的来回切换。安装只需一条命令加一次重启。

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

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

Xiaoye