@xia-sc/dsh-git:在 DSH Web 裏用懸浮面板管 Git

前言

在 DeepSeek Harness(DSH)Web GUI 裏寫代碼、跑智能體會話時,工作區往往就是某個 Git 倉庫。常見做法是切到終端或 IDE 做分支、暫存、提交、推送;會話一多、側邊欄來回點不同工作區,還要自己記住「當前 cwd 對應哪棵倉庫」。@xia-sc/dsh-git 把一整套 Git 操作收進可摺疊懸浮面板,並隨當前會話的工作區實時重新綁定——換會話即換倉庫視圖,不必手動對齊路徑。

這是什麼

@xia-sc/dsh-git 是 DSH Web 的客戶端 Git 管理插件(維護者 xia-sc,npm 包名 @xia-sc/dsh-git,當前資料版本 0.7.1,MIT 許可證)。形態包括:

  • 輸入框左上角的狀態膠囊(conversation.input.dock):顯示分支摘要,或提示「當前工作區不是 Git 倉庫」;點擊展開/收起面板。
  • 懸浮面板(shell.overlay):摺疊時不渲染 DOM,不擋輸入框;展開後提供分支、拉取、提交、推送、變更列表與差異查看等完整工作流。

兩處界面共用同一 store,並隨會話及其 cwd 切換而重新綁定;切換工作區會清空已選文件,避免串倉庫。

核心功能

README 列出的工作流如下(均已實現於面板與 RPC):

  • 分支:切換(帶髒樹預檢與警告)、基於本地或遠端引用(如 origin/feature/x)新建分支。
  • 遠端:拉取更新(fetch)、拉取合併(pull 僅快進 git pull --ff-only)、推送(push)。
  • 本地提交鏈:暫存全部(git add --all)、提交(commit,可用 AI 起草提交信息)、狀態(status)、最近提交列表。
  • 變更:未提交文件列表(路徑 + 狀態色標籤);點擊某行在右側打開 unified diff(未暫存/已暫存可切換,欄寬可拖,大 diff 有截斷與展開)。

其他界面與行爲要點:

  • 操作反饋固定在面板最上方一行;Git 冗長輸出收在「詳情 ▾」。
  • 刷新時保留面板內容,僅頂欄顯示「刷新中…」。
  • 提交區順序:暫存全部 → 選擇 AI 生成依據(已暫存/未暫存/全部)→ ✨ AI 生成 → 手寫或修改後提交;提交本身不會隱式暫存。
  • 頂欄 ⚙ 可設提交信息語言(含「自動」與多種語言),存於瀏覽器 localStorage(鍵 dsh-git.commitLanguage)。
  • 宿主側 Git 經 execFile(無 shell)、帶超時;瀏覽器通過自持路由 /dsh-git-rpc 調用(與 connection 插件 RPC 信封一致,安全圍欄同 /api)。

環境要求:資料寫明需 dsh ≥ 0.1.5-rc.1(自持 HTTP 路由);會話綁定邏輯適配 dsh ≥ 0.1.6-alpha.2 起由會話座位提供當前會話的方式。

安裝與啓用

在 Web 配置檔下安裝(命令來自 README 原文):

dsh plugin --profile web add @xia-sc/dsh-git

也可從 GitHub 同源安裝:

dsh plugin --profile web add https://github.com/xia-sc/dsh-git

安裝後重啓 dsh web(bundle 與瀏覽器 roster 在啓動時組合)。刷新頁面後,若當前會話工作區是 Git 倉庫,輸入框上方會出現 dock 膠囊,點擊即可展開面板。

卸載:

dsh plugin --profile web remove @xia-sc/dsh-git

典型用法

  1. 打開 DSH Web,選中一個工作區爲 Git 倉庫的會話;點擊輸入框左上角膠囊,展開懸浮面板。
  2. 看狀態行:未提交計數、相對上游的領先/落後。需要更新遠端時,用網絡工具條 拉取更新 或 拉取合併(僅快進);再 推送。
  3. 改完代碼後,在「變更」卡片裏點文件行查看 diff;確認無誤後點 暫存全部,可選 ✨ AI 生成 提交說明(默認依據「已暫存」),在輸入框用 Ctrl/Cmd+Enter 提交。
  4. 換分支:用分支切換器;有未提交修改時會先列出受影響文件並警告,可取消或 仍要切換。要開新分支:點「+ 新建分支」,填名稱並選基分支後確認。

AI 生成走當前會話的模型路由,並攜帶 sessionId(部分網關要求會話親和);失敗時會在「上次操作輸出」裏顯示本地化原因。

適用場景與注意

適合:主要在 DSH Web 裏對話、改代碼,希望少切終端、且面板隨會話 cwd 自動對齊倉庫的開發者。

注意:

  • 插件在 DSH 宿主進程權限下執行 git 與網絡操作,安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。
  • pull 不做非快進合併;髒樹切分支可能被 Git 拒絕,面板會盡量給出可讀提示。
  • 社區目錄 skillhub.cn 上的插件頁 與 GitHub 爲公開信息來源;DSH 生態是「一切皆插件」,該目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

@xia-sc/dsh-git 把分支、拉取、暫存、AI 輔助提交、推送、狀態與可點擊 diff 收進隨會話移動的懸浮面板,適合在 Web GUI 裏完成日常 Git 循環。進一步瞭解功能與 RPC 細節見倉庫 README;安裝與索引見社區目錄頁與 GitHub:

  • 目錄頁:https://www.skillhub.cn/plugins/xia-sc/dsh-git
  • GitHub:https://github.com/xia-sc/dsh-git
羽毛球分组比赛记分
小程序二维码

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

小夜