前言¶
在 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 add 与 git commit,并返回每批短 hash。
适用场景与注意¶
适合在 DSH web 会话中处理本地 git 改动的开发者使用。执行提交时不执行 git push、不使用 --force、不修改 git 历史;多批次中任一批失败即停止,不回滚,已成功批次照常报告。
需要注意以下边界:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 要求
Node.js >=18,DSH >=0.1.1-rc.1。 - 分析时会把工作区
status、diff与未跟踪文本采样(每文件前 8KB、最多 32 个)发送给当前会话模型服务商,敏感路径除外。 - API 仅接受同源 POST,拒绝跨站调用。
- 同一
sessionId的 analyze/execute 有进程内 in-flight 锁,重复点击直接拒绝。
相关链接¶
如果需要在 DSH web 会话中减少手工整理提交的工作量,可以从源码仓库查看实现细节:
- GitHub:https://github.com/PenguinAndy/dsh-ezcommit-plugin