dsh-git-flow:DeepSeek Harness 工作區 Git 插件

在 DeepSeek Harness 中,開發者經常需要在會話上下文內直接管理倉庫。dsh-git-flow 插件在 Composer 工具欄中提供了一個分支芯片。打開它,可以瀏覽、切換分支,創建新分支,並對選中的文件子集進行提交——提交消息由會話模型根據 diff 自動生成。

安裝

插件依賴 Node ^22.19.0 || >=24.0.0 和 pnpm 10。

使用官方安裝命令:

dsh plugin --profile gitflow-web add https://github.com/hunan36/dsh-git-flow

安裝後,請在插件頁面啓用該插件。

功能概覽

該插件提供以下核心功能:

  1. 瀏覽分支
  2. 切換分支
  3. 創建分支
  4. 提交選中的文件子集
  5. 提交消息由會話模型根據 diff 自動生成
  6. Push(推送)

使用方式

在 Composer 工具欄中,點擊分支芯片(例如 [⑂ feature/login 3])打開菜單。菜單支持以下操作:

  • 搜索分支
  • 查看本地分支
  • 新建分支
  • 提交(Commit,僅在工作區有變更時啓用)
  • 刷新狀態

安全邊界與行爲細節

插件在實現上做了以下安全與行爲限制:

  • 會話隔離:瀏覽器只發送 sessionId,主機根據該會話解析倉庫路徑。頁面無法指定 Git 運行的目錄。
  • 命令執行安全:參數總是以數組形式傳遞,不使用 shell 字符串。配置 stdin: 'ignore' 和 GIT_TERMINAL_PROMPT=0,確保憑證提示不會掛起調用。
  • Push 行爲:push 命令永遠不會傳遞 --force 或 --force-with-lease,僅推送當前分支到上游(若上游不存在則自動設置)。
  • 提交範圍:提交面板僅暫存面板中勾選的文件。若未選中任何文件,會返回 git/no-files-selected,不會回退到隱式的 git add -A。
  • 分支切換:當工作區有未提交變更時,默認拒絕切換分支(返回 git/dirty-worktree)。僅當用戶在確認對話框中點擊第二次時,纔會發送 --force 強制切換。
  • 丟棄變更:僅在確認對話框中選擇破壞性操作後執行。已跟蹤路徑回退到 HEAD(git restore --source=HEAD --staged --worktree),未跟蹤路徑被移除(git clean -fd,不包含 -x,保留忽略文件),衝突路徑被拒絕而非自動猜測。

依賴項

  • Node.js: ^22.19.0 || >=24.0.0
  • pnpm: 10

結語

dsh-git-flow 將 Git 操作直接嵌入到 DSH 會話流中,通過 AI 輔助生成提交信息,減少了手動編寫 Commit Message 的成本。

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

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

小夜