DSH(DeepSeek Harness)采用插件化架构,支持在 Web 界面中扩展功能。dsh-git-vcs 是一个实现 Git 版本控制能力的插件,它在 DSH Web GUI 的右侧栏新增了「版本管理」页,将本地变更管理、提交树查看、分支与贮藏管理等核心操作集成到浏览器端。
插件定位与功能¶
该插件由 TiChuXiXi 维护,基于 MIT 协议开源。它主要解决在 Web 界面下进行代码版本管理的问题,功能参照 IntelliJ IDEA 的 Version Control 工具窗(Alt+9)与 Commit 工具窗(Alt+0)设计。
核心功能点如下:
- 右侧栏入口:在右侧栏注册了「版本管理」页(
order: 20),同时引导页提供胶囊入口。分栏、全屏及展开/收起由官方的@deepseek-ai/dsh-client-ui-sidebar-right插件处理。 - 版本管理能力:支持本地变更查看与勾选提交、提交树(多泳道图,支持
--all)、分支/远程/贮藏管理、以及 Git 命令流水记录。 - 非仓库处理:当打开的目录不是 Git 仓库时,页面会切换为居中的空态,并提供一键初始化仓库的按钮。
安装与启用¶
- 安装插件
通过官方 CLI 安装该插件:
dsh plugin --profile web add dsh-git-vcs
确保当前环境兼容。该插件需要 DeepSeek Harness 版本 **≥ 0.1.7-rc.2**。
- 验证安装
安装完成后,检查配置是否生效:
dsh --profile web --dump-config | Select-String "dsh-git-vcs"
- 代码生效
插件采用零构建策略,但修改了index.js(host 侧)或cordis.patch.yml后,必须重启dsh web进程才能生效。修改lib/client.js(浏览器侧)则只需刷新页面。
技术实现与依赖¶
- 零构建:插件无编译步骤,直接使用 ESM 格式,不依赖运行时库。
- 依赖服务:
subprocess:用于在 host 进程中执行 git 命令(以 argv 形式,不进 shell)。connection:用于 RPC 通道的信任栅栏校验。webServer:用于注册/git-vcsRPC 路由。
- RPC 通道:插件通过
/git-vcsRPC 通道向 host 发起 Git 操作请求。Host 侧执行后,返回标准化的错误码(如git-vcs/not-a-repo、git-vcs/write-disabled等)及数据。
典型用法¶
- 查看仓库状态:在右侧栏打开「版本管理」页,查看当前会话工作目录下的变更、分支与提交历史。
- 初始化仓库:如果打开的目录不是 Git 仓库,点击页面中央的「在当前目录初始化 Git 仓库」按钮即可完成初始化。
- 调用命令:通过
/git-vcsRPC 通道调用具体的 Git 命令端点(如repo/info获取仓库元数据,status获取变更状态等)。
总结¶
dsh-git-vcs 为 DSH Web 界面提供了完整的 Git 版本控制能力,使其具备了类似 IDE 的操作体验。开发者可以通过标准的 RPC 接口或右侧栏 UI 进行代码的提交、分支管理与历史回溯。
- 仓库地址: https://github.com/TiChuXiXi/dsh-git-vcs
- 目录页: https://www.skillhub.cn/plugins/TiChuXiXi/dsh-git-vcs