Files
cnc_wams/work/working7/06-决策记录.md

136 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 06 决策记录
生成日期2026-06-27
## W7-D01 以操作手册作为测试拆解主线
决定本轮测试功能按《Web RTCP 五轴联动数控系统仿真界面操作手册》的章节拆分,不按代码目录或历史工作目录重新命名功能。
原因:
- 手册是用户指定输入。
- 手册章节直接对应操作者工作流,便于后续人工测试、截图和报告复用。
- 任务矩阵可以防止后续再次重复拆分主界面、开机、AUTO、MDI 等相同功能。
## W7-D02 R01 阶段不修改业务代码
决定W7-R01 只新增 `work/working7` 文档并执行现有验证命令,不改 `web-rtcp-5axis-sim-plan/app` 或测试脚本。
原因:
- 用户要求是“测试方法写入 working7”不是新增功能或修复缺陷。
- 当前 build、Node smoke、browser smoke 均已通过,没有发现必须在本轮修复的失败。
- 工作区已有未提交改动,避免混入无关业务变更。
## W7-D03 现有自动化作为基线证据
决定:以 `npm run build``npm run smoke:node``npm run smoke` 作为本轮基线验收命令。
原因:
- 这些命令是项目 `app/package.json` 中已有正式入口。
- Node smoke 覆盖 runtime、policy、session、RTCP、gmoccapy HAL 和 gate。
- 浏览器 smoke 覆盖真实 DOM、按钮视觉状态、canvas 和 dist 页面。
## W7-D04 人工手册步骤不等同于全部已截图验收
决定:对手册中的人工流程,本轮写清测试方法;只有已跑命令和既有 QA 报告作为当前证据。
原因:
- 本轮没有重新生成逐步骤截图/PDF。
- 直接把“方法已写入”说成“全部人工截图已验收”会造成证据口径不准确。
- 后续如需要新截图/PDF可按 `02-程序测试开发完善详细步骤.md``04-任务矩阵.md` 继续推进。
## W7-D05 保留 Web 仿真安全边界
决定:所有 POWER、HOME、RUN、JOG、MDI、主轴和冷却测试均按 Web 仿真状态验收,不声明真实机床控制能力。
原因:
- 项目 README 和操作手册都说明浏览器不替代 LinuxCNC 实时内核。
- Node smoke 输出也明确 `hardware_drive=0``host_realtime_kernel=0``promotion_scope=web_simulation_only`
- 这是验收文档中必须保留的安全边界。
## W7-D06 区分 RTCP proof 和 gmoccapy reference profile
决定:`xyzac-trt``xyzbc-trt` 用于 RTCP/TCP source-derived WASM 证明;`gmoccapy-xyzab` 只作为 `trivkins` reference-only profile 测试 gmoccapy 操作和 HAL 语义。
原因:
- `gmoccapy-xyzab` 来自 `gmoccapy_XYZAB.ini`,使用 `trivkins coordinates=xyzab`
- 操作手册也说明 reference-only profile 可能禁用 TCP 切换并显示原因。
- 混淆这两个边界会导致错误验收结论。
## W7-D07 后续新增证据必须有编号
决定后续新增截图、PDF、JSON 或脚本时,先在任务矩阵新增 `W7-Txx` 编号,再写入证据。
原因:
- 可避免“同一功能多轮重复测试但状态不清”。
- 可让 README、推进台账、证据文件保持一致。
- 便于按 job_id、report_id、截图路径追溯。
## W7-D08 新增 working7 专项 QA 脚本补齐方法就绪项
决定:新增 `qa/web-rtcp-5axis-site-test/capture-working7-manual-flow-evidence.mjs`,用本地静态服务和 headless Chrome 生成 JSON、PDF 和截图证据。
原因:
- W7-R01 已完成手册测试方法归档,但 W7-T06、W7-T08、W7-T09、W7-T11 仍是 `method-ready`
- 既有 QA 报告可以引用,但不是按 working7 手册流程和本轮日期生成。
- 专项脚本可重复执行,能把 POWER/HOME、AUTO/MANUAL、JOG、MDI、倍率/HAL、主轴/冷却、Save/Restore 和诊断证据集中到同一个 report_id。
- 该脚本本身只增加 QA 证据;专项证据基于当前源码执行,当前源码包含前序 AUTO/MANUAL 模式切换与 titlebar 稳定性修正。
## W7-D09 working7 证据引用当前源码状态
决定working7 的最终验收记录引用当前工作区源码状态,不把前序 `store.js``gmoccapy-shell.js` 和浏览器 smoke 修正错误归入 working7 新增业务功能。
原因:
- `store.js` 修正确保 Task/HAL 模式切换时保留已上电、已回零和目标模式状态,这是 AUTO/MANUAL 手册流程成立的前置稳定性修正。
- `gmoccapy-shell.js` 修正确保 titlebar profile selector 和当前行节点在普通状态刷新时不被重挂载,便于浏览器自动化稳定复测。
- `gmoccapy_shell_smoke.html` 已增加对应回归断言working7 专项 QA 在这些前序修正之上生成 JSON/PDF/截图证据。
- working7 本轮收尾动作是证据复核、报告重跑和文档同步,不再扩大业务运行逻辑范围。
## W7-D10 使用全量 evidence 脚本作为最终验收主证据
决定:新增 `capture-working7-full-functional-evidence.mjs`,作为 W7-T17 的最终主证据;旧的 `capture-working7-manual-flow-evidence.mjs` 保留为手册流程交叉证据。
原因:
- 用户要求验证“所有按钮、程序执行、刀具预览、实时路径、G-code 执行过程、机床轴值、仿真界面右侧按钮”,旧脚本只覆盖手册主流程,不足以证明全量按钮矩阵。
- 全量脚本记录 73 个实际动作、19 张截图、JSON、Markdown 和 PDF能按 job_id/report_id 复查。
- 旧脚本继续保留,可以防止全量脚本过宽时遗漏手册主线。
## W7-D11 Task/HAL 下 JOG/MDI 需要保留 Web 可视执行结果
决定:在 Task/HAL 状态应用链路中增加 `preserveAxisPose``preserveMachine`JOG/MDI 发送 Task/HAL 命令后保留 Web 侧 axisPose、DRO、mode 和 idle 状态。
原因:
- Task/HAL runtime 当前主要提供 simulation feedback不一定会在单次 JOG/MDI 命令后返回 Web UI 需要的最终轴值。
- 用户验证的是 Web 仿真界面的可见执行过程,点击 JOG/MDI 后 DRO 和 axisPose 必须稳定反映操作者刚执行的动作。
- 保留字段只作用于明确的 Web 命令回写,不改变自动程序运行时的 Task/HAL feedback 主链路。
## W7-D12 初始主轴、冷却和速度采用安全关闭状态
决定:首屏初始状态改为主轴停止、冷却关闭、当前速度为 0。
原因:
- 未上电状态下主轴/冷却显示 active 会和 gate 语义冲突。
- 安全关闭状态更符合机床 UI 的默认预期。
- 浏览器 smoke 和 working7 evidence 均已更新为该语义。
## W7-D13 资源路径 404 不作为可接受噪声保留
决定:修正 favicon、INI loader、machine-file staging、dist 复制和 reference-only kinematics 跳过逻辑,使最终 evidence 报告中 console/network/page error 均为 0。
原因:
- 404 fallback 虽不一定影响功能,但会降低验收报告可信度。
- source 模式和 dist 模式应各自使用明确有效路径,不依赖失败后回退。
- `gmoccapy-xyzab` 是 reference-only profile不应尝试 source-derived kinematics runtime。