前言¶
在 DSH(DeepSeek Harness)的 Web UI 中运行会话时,会话的工作目录经常落在 Git 仓库里。开发者需要确认当前分支、脏文件计数、领先/落后远端的情况,也可能要看最近提交和文件变更。以往需要切到终端执行 git status、git log、git diff,再回到浏览器查看会话。
dsh-git-ui 将这些 Git 状态放进 Web UI。下面介绍它的位置、能力、安装方式和注意事项。
这是什么¶
dsh-git-ui 是 DeepSeek Harness(dsh)Web UI 的 Git 状态可视化插件,由 Julyves 维护,许可证为 MIT。
它面向已经运行 web profile 的 DSH 场景,让浏览器中的会话头部直接展示当前会话工作目录的 Git 状态。它不替代终端 Git 工作流,也不暴露 push、pull、merge 等操作,而是把常用状态查看和变更管理集中到 Web UI。
核心功能¶
会话头状态胶囊¶
每个会话头部会显示一个状态胶囊,用于展示:
- 当前分支
- 脏文件计数:
+N −N ?N - ahead / behind 信息
如果会话工作目录不是 Git 仓库,状态会显示为占位状态。
详情弹窗¶
点击会话头部的状态胶囊,可以打开详情弹窗。弹窗中可以看到:
- 状态计数
- 最近提交
- 变更文件
- 分支操作
- 对变更文件进行 inline stage / unstage / discard
最近提交、变更文件可以进一步进入 Git center 查看更完整的上下文。
Git center¶
Git center 是更完整的 Git 管理入口,包含四个标签页:
- History
- Changes
- Records
- Settings
History 是默认落地标签页。
History¶
History 提供提交历史查看能力:
- 分页提交列表
- 分支图
- 过滤树
- 日期过滤
- 搜索
选中某个提交后,可以查看提交内容、正文和变更文件树。点击文件树中的文件,可以进入 Changes 标签页查看该提交对应文件的 diff。
Changes¶
Changes 按 Git 状态分组展示文件:
- staged
- unstaged
- untracked
它支持单文件操作和批量操作:
- stage
- unstage
- discard
Changes 中还提供 commit 输入框。
diff 查看器支持:
- side-by-side 模式
- before 模式
- after 模式
- Markdown 渲染
- mermaid 支持
Records¶
Records 用于查看每一轮工作的记录,并给出三方计数:
本会外
它还提供 confidence badges 和 correction actions,用于对归属判断进行修正。
对于动态构造的 bash 目标,Records 的判断是启发式的;不确定时可能回退为 外,并带 ≈ 标记。冷会话会被跳过,观察时间线也有上限。
Settings¶
Settings 提供展示配置:
- display presets
- pill / popover 开关
- popover 分区排序
- diff viewer 选项
安装与启用¶
先确认环境满足要求:
- 正在运行的 DeepSeek Harness,且启用
webprofile - Node.js
^22.19.0 || >=24.0.0 - dsh
>= 0.1.0-rc(developer preview) - 主机上有
git
在确认环境后,添加插件:
dsh plugin --profile web add dsh-git-ui
执行完成后,重启 dsh web。
典型用法¶
- 打开一个会话,并确认该会话的工作目录位于 Git 仓库内。
- 查看会话头部的状态胶囊,无需额外操作。
- 点击状态胶囊,查看计数、最近提交和变更文件;需要完整管理时打开 Git center。
经过上面的步骤,就可以在 Web UI 中确认当前仓库状态,并查看提交、变更文件和 diff。
适用场景与注意¶
适合使用 dsh web profile 的 DSH 用户,尤其是希望在浏览器中查看分支、脏文件、提交历史、变更文件和相关记录,而不频繁切换终端的开发者。
需要注意以下几点:
- 插件只展示当前会话工作目录的 Git 状态,不暴露 push、pull、merge。
- 刷新基于轮询;基于文件 watcher 的事件推送属于计划中的能力。
- 变更文件列表受
maxChanges限制,并且对超大状态输出有 spill-file recovery。 - 浏览器侧只发送
sessionId;宿主负责解析工作目录并运行 Git,且带有路径保护。 - Records 对动态构造的 bash 目标使用启发式判断,可能回退为
外并显示≈。 - 语法高亮和 mermaid 支持覆盖语言和图形子集,不是全集。
- 插件会在 dsh web 宿主环境中执行 Git 相关操作,使用当前 dsh 进程可用的权限和本机
git。安装前建议检查源码、依赖和 MIT 许可证。
链接¶
- GitHub:https://github.com/Julyves/dsh-git-ui
- 社区目录页可按插件名
dsh-git-ui检索。