dsh-git-dashboard:DeepSeek Harness 仓外只读 Git 工作区看板

在 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。

  1. 安装包:进入 web profile 目录,使用 pnpm 安装。
    cd ~/.dsh/profiles/web
    pnpm add dsh-git-dashboard
  1. 配置 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"
          ]
        }
      }
    }
  1. 处理依赖链接:如果 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` 中。
  1. 验证与重启:运行配置检查命令,确认输出中包含 # == 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(可通过上述配置项调整)。

生态与反馈

该插件旨在丰富 DSH 的插件生态,为开发者提供更直观的代码状态监控。更多细节请访问插件目录或查看源码仓库。

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

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

小夜