真机验证走查(六条需求)

August 22, 2026 · View on GitHub

前提 1:插件已通过 dsh plugin --profile <name> add dsh-ezcommit-plugin 安装, 且 profile 已重启(启动日志可见 [dsh-ezcommit-plugin] 公告与「已挂载 /ezcommit/api/* 路由」)。

前提 2:web 会话标题栏出现 [分支] [一键 Commit] 按钮(静态双面包自动挂载, 无需 cordis preset / cordis_define)。本会话工作区必须是 git 仓库。

场景制备工具:node scripts/stage-fixture.mjs demo|noise|clean(见下文各步)。

验证矩阵

#需求操作预期结果
1非 git 仓库 → 按钮置灰临时 mv .git .git.bak(不要提交,验证后立即恢复)分支 chip 显示「非Git仓库」,按钮置灰,tooltip「当前工作区不是 Git 仓库」
2分支名展示恢复 .git 后观察按钮左侧 chip显示当前分支名(如 main);detached HEAD 时显示短 hash
3点击弹二次确认框点击「一键 Commit」弹确认框:分支、改动计数、未跟踪计数;「取消」关闭且无任何 git 操作
4模型按业务颗粒度拆分node scripts/stage-fixture.mjs demo → 确认框点「开始分析」进入「审查拆分计划」:两批(feat: ...demo-greetingdocs: ... 类),文件清单正确、顺序合理
5无改动 → 置灰执行完毕后观察按钮按钮立即刷新置灰,tooltip「工作区没有改动」
6噪音 → 提示不 commitnode scripts/stage-fixture.mjs noise → 分析黄色「环境噪音,无需 commit」框 + reason;git log 无新增提交

详细步骤

  1. (需求 1/2) mv .git .git.bak → 等 ≤5s 轮询刷新 → 按钮置灰、chip 显示「非Git仓库」; mv .git.bak .git 恢复 → chip 回到 main、按钮可用。
  2. (需求 3) 点击按钮 → 确认框展示「分支 main · 共 N 个改动(未跟踪 M 个)」; 先点一次「取消」验证无副作用。
  3. (需求 4) node scripts/stage-fixture.mjs demo → 再次点击按钮 → 「开始分析」→ 等待模型裁决 → 审查计划页应出现两批提交(每批 title 符合 Conventional Commits, files 分别对应 src/demo-greeting.jsdocs/demo-api-notes.md)。
  4. 点击「执行 N 批提交」→ 成功框列出每批短 hash → git log --oneline 应多出两笔提交。
  5. (需求 5) 观察按钮已置灰;node scripts/stage-fixture.mjs clean 后仍置灰。
  6. (需求 6) node scripts/stage-fixture.mjs noise → 分析 → 应裁决 noise, 弹黄色提示框且 git log 无新增提交;clean 收尾。

收尾

  • 验证产生的演示提交用 git reset --hard <验证前 commit> 移除(仓库无远端时安全); 或保留作为使用示例。
  • 场景文件全部清理后按钮置灰,闭环验证结束。