在 DeepSeek Harness(DSH)的开发流程中,智能体在 web profile 中运行时,通常难以直接查看当前仓库的 Git 状态。dsh-git-dashboard 插件提供了一个解决方案,通过在会话头部展示分支信息和工作区变更摘要,让开发者在不离开工作区的情况下掌握代码状态。
这是 DeepSeek Harness 的仓外只读 Git 工作区看板,由 Sombrer0-1 维护,采用 MIT 许可证。
核心功能¶
该插件主要提供以下能力:
- 会话头部信息:显示当前分支或 detached HEAD 状态,以及变更文件总数。
- 工作区看板:列出已暂存、未暂存、未跟踪及冲突的文件计数,并展示文件级变更统计(+N/−M,相对于 HEAD)。
- 灵活标记:支持同一文件同时标记为“已暂存”和“未暂存”。
- 预览与 Diff:点击文件可查看 unified diff 预览(包含未跟踪文件)。若文件过大、为二进制或存在冲突,系统会说明原因。
- 分支比较:支持选择基准分支,查看 ahead/behind 状态及文件摘要。
- 文件打开:在 loopback 且 Host 允许的情况下,可点击文件在本地文件夹中打开。
安装与启用¶
安装该插件需要 Node.js 环境(版本要求 ^22.19 || >=24),并确保本地已安装 git。
- 安装包:进入 web profile 目录,使用 pnpm 安装。
cd ~/.dsh/profiles/web
pnpm add dsh-git-dashboard
- 配置 Bundle:编辑 profile 的
package.json,将dsh-git-dashboard添加到dsh.profile.bundles数组中,并确保它位于@deepseek-ai/dsh-base之后。
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-git-dashboard"
]
}
}
}
- 处理依赖链接:如果 Host 报错提示找不到
@deepseek-ai/dsh-typert-protocol等包,需要在插件目录执行依赖链接脚本。
cd ~/.dsh/profiles/web/node_modules/dsh-git-dashboard
node scripts/link-runtime-deps.mjs
此脚本会将 Host 侧的 peer 依赖链接到 profile 的 `node_modules` 中。
- 验证与重启:运行配置检查命令,确认输出中包含
# == dsh-git-dashboard,然后重启dsh web。
配置¶
插件支持通过 cordis.patch.yml 进行配置,默认值如下:
| 字段 | 默认值 | 含义 |
|---|---|---|
command |
git |
Git 可执行文件路径 |
timeoutMs |
2000 |
单次 git 命令超时时间(毫秒) |
maxStatusBytes |
1048576 |
git status stdout 上限 |
maxNumstatBytes |
524288 |
numstat stdout 上限 |
maxFiles |
100 |
列表显示的文件数量上限 |
maxBranches |
100 |
分支列表上限 |
maxDiffBytes |
262144 |
单文件 diff 预览的字节上限 |
maxDiffChangedLines |
500 |
单文件预览变更行数上限(增删合计) |
安全与注意事项¶
- 网络与权限:插件使用 Gateway 现有的
trusted-host配置,不单独设置 loopback-only。它会向已授权客户端暴露仓库名、分支名、路径与行数统计。建议仅在 loopback 使用;若在 LAN 且 trusted host 可连,请自行评估暴露面。 - 资源限制:为了防止性能问题,单文件预览变更行数默认上限为 500 行,diff 输出默认上限为 256 KiB(可通过上述配置项调整)。