在 DeepSeek Harness 中进行智能体开发时,频繁查看仓库变更、提交代码或切换分支往往需要跳转到终端或外部工具,打断开发流。dsh-sidebar-git 是一个原生集成在右侧栏的 Git 插件,它跟随当前会话的仓库,提供变更查看、暂存提交、分支切换及远端同步等功能,让 Git 操作不离开会话页面。
核心功能¶
- 原生右侧栏页签:注册为
sidebar-git类型,与聊天、终端等并列,不依赖第三方 UI 库,使用 DSH 内置组件库渲染。 - 跟随会话绑定:默认自动解析当前会话的工作目录(
cwd),支持手动改绑。当会话不在仓库内时,提供空态表单进行绑定。 - 变更查看:分组展示已暂存、未暂存及未跟踪文件。支持行内展开 diff,显示增删行着色及文件统计。
- 提交与推送:底部卡片式提交框,支持
amend上一次提交。推送与拉取仅支持--ff-only模式。 - 分支与 Stash 管理:支持分支切换、新建、删除及推拉操作。Stash 支持存入、弹出、应用与删除。
- 危险操作分级:对于破坏性操作(如删除分支),采用
prepare -> confirm机制,防止误触。 - 状态实时感:轮询
/overview接口,实时聚合分支状态与文件变更。
安装与启用¶
安装脚本会自动处理软链、依赖挂载及清理旧版脚本,无需使用 dsh plugin add。
node tools/install-into-profile.mjs
如需临时停用而不卸载,编辑 profile 的 cordis.patch.yml,添加 disabled: true。
- id: sidebar-git
name: dsh-sidebar-git
disabled: true
典型用法¶
- 查看变更:打开 Git 页签,即可看到当前的文件变更列表。点击行可以展开查看具体的 diff 内容。
- 手动绑定路径:如果当前会话不在任何仓库目录中,页面会显示空态,直接在输入框中填入仓库路径并确认即可绑定。
- 切换分支:在分支页签点击顶部的分支 chip 进行切换,或点击新建按钮创建并切换新分支。
- 提交代码:在底部的提交卡片填写信息,提交后可点击推送到远端,或从远端拉取代码。
安全与边界¶
- 插件不提供任意 Git 命令输入框,也不进行 shell 拼接或参数模板注入。
- 明确不做
reset --hard、clean、push --force(非 lease)、cherry-pick、rebase及 merge 冲突解决 UI。 - 凭据完全交给用户自己的 git credential helper,插件不读、不存、不传任何凭据。
pull操作固定为--ff-only,若需要 merge 或 rebase,会给出终端指引。- 并发设计上,Agent 与本插件都能改工作区,以实时 status 为准。
结语¶
dsh-sidebar-git 提供了一个在 DSH 环境内完成基础 Git 流程的轻量级方案。它通过严格的操作分级和参数校验,在便利性与安全性之间取得了平衡。