@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
羽毛球分组比赛记分
小程序二维码

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

小夜