dsh-ezcommit-plugin:DSH「一键 Commit」静态双面插件

前言

在 DSH(DeepSeek Harness)的插件机制里,web 会话中处理 git 工作区改动时,手工整理 diff、拆分提交和写 commit message 比较琐碎。dsh-ezcommit-plugin 提供的是一个「一键 Commit」入口:由当前会话模型按业务颗粒度拆分 git 改动,并在用户确认后分批提交。

这是什么

dsh-ezcommit-plugin 是 DSH「一键 Commit」静态双面插件,由 PenguinAndy 维护,采用 MIT 许可证。它用于在 DSH web 会话中处理本地 git 仓库的改动。安装并重启 profile 后,web 会话标题栏会出现 [分支名] [一键 Commit] 按钮。

核心功能

主要能力如下:

  • 非 git 仓库时按钮置灰。
  • 按钮左侧展示分支名;detached 状态下退化为短 hash。
  • 工作区无改动时按钮置灰。
  • 点击「一键 Commit」后弹出二次确认框。
  • 由当前会话模型按业务颗粒度拆分 git 改动为多个 Conventional Commits 批次。
  • 模型判定为环境噪音时,只提示原因,不执行任何 git 写操作。
  • 敏感文件路径与内容不发送给模型,也不进入提交计划或执行。

安装与启用

安装

下面给出从 npm 安装该插件的命令:

dsh plugin --profile web add dsh-ezcommit-plugin

也可以从 git 仓库或本地 checkout 安装:

dsh plugin --profile web add git+https://github.com/PenguinAndy/dsh-ezcommit-plugin.git
dsh plugin --profile web add link:/path/to/dsh-ezcommit-plugin

启用

安装完成后,需要重启 profile 才会出现按钮并挂载路由。以 web profile 为例:

dsh web

刷新页面后,会话标题栏会出现 [分支名] [一键 Commit] 按钮。

典型用法

使用流程如下:

1、点击「一键 Commit」,二次确认框展示分支与改动计数。
2、「开始分析」后,由当前会话模型裁决为 noise 或 commit;commit 时展示拆分批次、文件清单、被过滤敏感文件与未覆盖文件告警。
3、「执行 N 批提交」逐批执行 git addgit commit,并返回每批短 hash。

适用场景与注意

适合在 DSH web 会话中处理本地 git 改动的开发者使用。执行提交时不执行 git push、不使用 --force、不修改 git 历史;多批次中任一批失败即停止,不回滚,已成功批次照常报告。

需要注意以下边界:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 要求 Node.js >=18DSH >=0.1.1-rc.1
  • 分析时会把工作区 statusdiff 与未跟踪文本采样(每文件前 8KB、最多 32 个)发送给当前会话模型服务商,敏感路径除外。
  • API 仅接受同源 POST,拒绝跨站调用。
  • 同一 sessionId 的 analyze/execute 有进程内 in-flight 锁,重复点击直接拒绝。

相关链接

如果需要在 DSH web 会话中减少手工整理提交的工作量,可以从源码仓库查看实现细节:

  • GitHub:https://github.com/PenguinAndy/dsh-ezcommit-plugin
羽毛球分组比赛记分
小程序二维码

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

Xiaoye