在 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(可通過上述配置項調整)。