DeepSeek Harness 插件

dsh-client-ui-git-branch

Out-of-tree dsh plugin: a git branch selector in the chat composer, immediately left of the model seat (current branch, fuzzy search, 5-row scroll, switch with conflict toast).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
dsh-mixxed/dsh-client-ui-git-branch
最近更新
2026年8月16日
分类
文档与渲染
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/dsh-mixxed/dsh-client-ui-git-branch
插件名:dsh-client-ui-git-branch
作者:dsh-mixxed

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-client-ui-git-branch

English | 中文

一个 dsh(DeepSeek Harness)out-of-tree 插件:在对话输入栏中、模型选择的正左侧conversation.input.right)添加一个 git 分支选择器

安装

1. 从 npm 安装插件(已发布为 @dsh-mixxed/dsh-client-ui-git-branch):

``sh dsh plugin --profile web add @dsh-mixxed/dsh-client-ui-git-branch ``

包声明了 dsh.bundle(包内自带 cordis.patch.yml),因此 dsh plugin add 会自动把它追加进 profile 的 dsh.profile.bundles 层栈,下次启动自动挂载——无需手动编辑 cordis.patch.yml

从旧版本(未声明 bundle)升级:请删除 $DSH_HOME/profiles/<name>/cordis.patch.yml 中旧的 ui-git-branch 挂载行——bundle 层现在会提供它,两者并存会挂载两次。

2. 重启 profile(新增插件的发现需要重启)并刷新浏览器页面。打开工作区为 git 仓库的会话, 模型选择左侧即出现分支 chip。

源码构建(开发 / 离线)

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
npm pack          # 生成 dsh-mixxed-dsh-client-ui-git-branch-<version>.tgz
dsh plugin --profile web add ./dsh-mixxed-dsh-client-ui-git-branch-<version>.tgz

功能特性

  • 座位位于模型选择左侧,chip 与菜单外观与模型选择完全一致
  • 仅当本机安装了 git 当前会话工作区是 git 仓库时才显示
  • 分支模糊搜索(子串或按序子序列匹配),带清除按钮
  • 列表最多同时展示 5 行;更多分支通过列表内部滚动条查看(不滚动页面)
  • 当前分支以不同颜色特别标注(品牌蓝 + 勾选图标)
  • 上游关联信息(VSCode 风格):每个分支显示其远程短名(origin/main),配彩色

领先/落后提交计数(↑2 琥珀色 / ↓3 绿色),上游被删除时显示红色 gone 标记; 纯本地分支不显示任何关联信息。当前分支不同步时,触发器 chip 上也会显示同样的徽标

  • 本地 / 远程分组——见 [分支分组](#分支分组)
  • 新建分支:弹窗输入分支名,从 HEAD 创建并自动签出(git switch -c);非法名实时

提示,重名冲突显示 git 原始报错

  • 切换分支带冲突检测:切换失败(通常是未提交改动会被覆盖)弹出 Toast 显示 git 原始报错
  • 完整 中 / 英 i18n 与多主题自动适配(全部基于 --dsw-* 设计令牌)
  • 分离 HEAD 安全(触发器回退显示 HEAD);无提交的新仓库也能列出当前分支

分支分组

列表在两个 sticky 标题下分组展示:

  • 本地分支——全部本地分支。有关联远程的分支保留其上游映射

master → origin/master,含领先/落后计数)。

  • 远程分支——仅显示远程存在、本地没有对应分支的分支

origin/HEAD 符号引用与裸远程 ref 已排除)。

交互行为:

  • 模糊搜索同时作用于两个分组;无匹配项的分组自动折叠隐藏。
  • 点击远程分支:创建本地跟踪分支并切换(git switch --track origin/feature

本地 feature 跟踪 origin/feature),随后该分支移入本地分组。

  • 点击本地分支:切换工作树(git switch);切换被阻止(通常是未提交改动会被覆盖)

时弹出 Toast 显示 git 原始报错。

验证

dsh --profile <name> --dump-config | Select-String ui-git-branch

组合后的配置包含 ui-git-branch 行,且 $DSH_HOME/profiles/<name>/package.jsondsh.profile.bundles 中列出了 @dsh-mixxed/dsh-client-ui-git-branch(由 dsh plugin add 自动追加)。

重启后,输入栏显示分支 chip;展开可见分组列表、搜索框与「新建分支」入口。

开发

pnpm run typecheck   # 严格 tsc(src + tests)
pnpm test            # vitest:host 逻辑(fake runner)+ 真实 git 集成 + jsdom 组件测试
pnpm run build       # esbuild 双产物 → lib/index.js(node ESM)+ lib/client.js(浏览器 CJS 闭包)

开发用独立测试 profile:git-branch-dev(与用户的 web profile 隔离),以 dsh --profile git-branch-dev --port 3800 启动。

许可证

MIT