# 05 验收证据 生成日期:2026-06-27 ## 1. 本轮命令证据 执行目录: ```text /home/meswork/cnc_wams ``` ### 1.1 静态构建 命令: ```bash npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run build ``` 结果: ```text 退出码:0 gmoccapy_static_build=ok ``` 产物: ```text /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/index.html /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/src/main.js ``` ### 1.2 Node smoke 命令: ```bash npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run smoke:node ``` 结果: ```text 退出码:0 linuxcnc_kinematics_runtime_smoke=ok linuxcnc_interpreter_runtime_smoke=ok linuxcnc_ini_runtime_smoke=ok run_preconditions_ini_profile_smoke=ok run_preconditions_kinematics_smoke=ok run_preconditions_machine_file_smoke=ok run_feedback_status_loop_smoke=ok run_ready_sequence_smoke=ok linuxcnc_task_hal_runtime_smoke=ok task_hal_machine_file_smoke=ok switchkins_remap_hal_sync_smoke=ok browser_task_hal_worker_smoke=ok native_task_hal_source_artifact_audit=ok full_linuxcnc_5axis_source_node_smoke=ok real_linuxcnc_5axis_program_cases_smoke=ok full_execution_boundary_smoke=ok machine_file_staging_smoke=ok five_axis_session_smoke=ok rtcp_store_smoke=ok profile_boundary_smoke=ok gmoccapy_xyzab_profile_smoke=ok gmoccapy_icon_manifest_smoke=ok gmoccapy_icon_registry_smoke=ok gmoccapy_communication_model_smoke=ok gmoccapy_hal_model_smoke=ok gmoccapy_xyzab_gates_smoke=ok linear_unit_conversion_smoke=ok ``` 额外输出摘要: ```text native_task_hal_readiness_artifact=web-rtcp-5axis-sim-plan/build/readiness/native-task-hal-readiness.json hardware_drive=0 host_realtime_kernel=0 external_user_m_process_ready=0 tool_db_process_ready=0 promotion_scope=web_simulation_only linuxcnc_source_program_case_count=8 all_cases_program_preview_points=ok all_cases_executed_path_points=ok_after_run_or_step all_cases_toolpath_preview_source=linuxcnc_interpreter_canonical_motion all_cases_tool_execution_trace_source=linuxcnc_tp_samples_or_task_motion_hal_feedback all_switchkins_cases_rtcp_state_changes_verified=1 fixture_toolpath_fallback_not_promoted=1 ``` ### 1.3 浏览器 smoke 命令: ```bash npm --prefix /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app run smoke ``` 结果: ```text 退出码:0 gmoccapy_shell_smoke=ok gmoccapy_dist_smoke=ok ``` 覆盖说明: - `verify_gmoccapy_shell_browser.sh` 使用 headless Chromium 打开测试页。 - `verify_gmoccapy_dist_browser.sh` 先构建 dist,再打开 dist 入口。 - 浏览器断言覆盖主区域、Three.js canvas dataset、profile 切换、RTCP 诊断、LinuxCNC INI 诊断、Task policy 诊断、按钮图标、按钮 active/inactive 视觉状态和 G-code 行高亮。 ### 1.4 QA 站点回归测试 命令: ```bash npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test test ``` 结果: ```text 退出码:0 site_test_status=PASS site_test_target_url=http://127.0.0.1:35861/web-rtcp-5axis-sim-plan/app/index.html site_test_report=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/site-test-report.json ``` 报告摘要: ```text status=PASS generatedAt=2026-06-28T00:31:19.883Z findings=41 failures=0 warnings=0 consoleErrors=0 pageErrors=0 requestFailures=0 ``` 修复说明: - `run-site-test.mjs` 默认从当前仓库启动本地静态服务,避免把本地修复结果和远端旧部署混在一起;如需测远端,仍可通过 `TARGET_URL=...` 覆盖。 - 点击逻辑改为每次在页面上下文即时查询元素,修复 Puppeteer `Node is detached from document`。 - STEP 验收改为 Task/HAL `singleStepping=true` 且保持暂停态。 - Restore Session 前先进入 MANUAL 并确认 JOG 改变坐标,再验证恢复快照。 ## 2. working7 全量功能实际执行图文证据 本轮新增全量实测证据,覆盖所有主要按钮、程序执行、刀具预览、刀具实时执行路径、G-code 执行过程、机床轴值和右侧控制区。 命令: ```bash npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test run evidence:working7:full ``` 结果: ```text 退出码:0 working7_full_functional_status=PASS working7_full_functional_job_id=w7full-20260628002838-518bf522 working7_full_functional_report_id=report-w7full-20260628002838-518bf522 working7_full_functional_json=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.json working7_full_functional_pdf=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.pdf working7_full_functional_md=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.md working7_full_functional_screenshots=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence ``` 报告摘要: ```text jobId=w7full-20260628002838-518bf522 reportId=report-w7full-20260628002838-518bf522 evidenceScope=working7-full-functional-evidence generatedAt=2026-06-28T00:28:38.507Z targetUrl=http://127.0.0.1:41281/web-rtcp-5axis-sim-plan/app/index.html status=PASS steps=19 actions=73 failedActions=0 checks=6 failedChecks=0 consoleErrors=0 networkErrors=0 pageErrors=0 ``` 图文报告: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.md /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence-report.pdf ``` 截图: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/01-loaded-inventory.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/02-initial-run-blocked.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/03-powered-homed.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/04-auto-right-panel.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/05-right-sidebar-all-states.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/06-profile-xyzbc.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/07-preview-buttons.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/08-linuxcnc-source-loaded.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/09-open-file-loaded.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/10-run-ready.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/11-run-realtime-path.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/12-pause-resume-step.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/13-stop-idle.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/14-manual-jog-axis-values.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/15-mdi-execution.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/16-overrides-hal.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/17-spindle-coolant.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/18-session-fullscreen.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-full-functional-evidence/19-diagnostics-audit.png ``` 覆盖说明: - 全量报告使用第一人称图文格式。 - 每个阶段都记录截图、store 状态、DRO、axisPose、canvas dataset、G-code 当前行和关键按钮状态。 - `gmoccapy-xyzab` 作为 reference-only profile 验证 TCP 禁用原因,不作为 RTCP proof。 - 最终报告无 console、network 或 page error。 ## 3. working7 手册流程专项 QA 证据 本轮新增专项证据,覆盖原任务矩阵中需要截图/PDF 的手册操作流。 命令: ```bash npm --prefix /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test run evidence:working7 ``` 结果: ```text 退出码:0 working7_manual_flow_status=PASS working7_manual_flow_job_id=w7-20260628002915-30d1c6c8 working7_manual_flow_report_id=report-w7-20260628002915-30d1c6c8 working7_manual_flow_json=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.json working7_manual_flow_pdf=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.pdf working7_manual_flow_screenshots=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence ``` 报告信息: ```text jobId=w7-20260628002915-30d1c6c8 reportId=report-w7-20260628002915-30d1c6c8 evidenceScope=working7-manual-flow-evidence generatedAt=2026-06-28T00:29:15.240Z targetUrl=http://127.0.0.1:41931/web-rtcp-5axis-sim-plan/app/index.html status=PASS consoleErrors=0 networkErrors=0 pageErrors=0 ``` 截图: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/01-loaded.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/02-powered-homed-manual.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/03-auto-active.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/04-manual-jog-x.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/05-mdi-command.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/06-overrides-hal.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/07-spindle-coolant.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/08-session-restored.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/09-diagnostics.png ``` 检查项摘要: ```text Main shell regions and canvas are ready=PASS POWER and HOME leave MANUAL ready=PASS AUTO activates without losing power/home=PASS Manual jog changes X=PASS MDI command is accepted in MDI mode=PASS Overrides reset and HAL toggles are active=PASS Spindle and coolant controls update state=PASS Session restore returns to saved profile=PASS Diagnostics expose Task/HAL and gmoccapy HAL=PASS Screenshots are nonblank=PASS ``` 专项说明: - MDI 浏览器证据证明真实页面可进入 MDI 并提交 `G90 X12.5 Y-4 Z1.25 F900`,Task/HAL runtime 接收后进入 MDI/reading 状态。 - `rtcp_store_smoke=ok` 继续作为 MDI 坐标更新、MDI 历史和 profile 限位夹紧的 Node store 逻辑证据。 - Save/Restore 本轮在浏览器中使用 OPFS,路径为 `web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json`。 ## 4. 既有 QA 证据 项目已有可引用 QA 证据: ### 3.1 gmoccapy XYZAB 功能报告 JSON: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json ``` PDF: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.pdf ``` 报告信息: ```text jobId=xyzab-20260626214346-f4b4aa36 reportId=report-xyzab-20260626214346-f4b4aa36 evidenceScope=gmoccapy-xyzab-function generatedAt=2026-06-26T21:43:46.310Z targetUrl=http://127.0.0.1:36983/web-rtcp-5axis-sim-plan/app/index.html screenshotsDir=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab ``` 截图: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/01-loaded.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/02-profile-selected.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/03-run-blocked-power.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/04-run-blocked-reference-evidence.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/05-controls-active.png /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/06-hal-diagnostics.png ``` ### 3.2 按钮控制报告 JSON: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json ``` PDF: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf ``` 报告信息: ```text jobId=btn-20260623091525-b35869f1 reportId=report-btn-20260623091525-b35869f1 evidenceScope=button-control-evidence generatedAt=2026-06-23T09:15:25.426Z targetUrl=http://127.0.0.1:41741/web-rtcp-5axis-sim-plan/app/index.html screenshotsDir=/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence ``` 截图目录: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/button-control-evidence ``` ### 3.3 Native Task/HAL 对比 ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md ``` ### 3.4 LinuxCNC source run 报告 ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report-2026-06-23.docx /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report.json ``` ## 4. 页面和脚本入口 本地 app: ```text /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/index.html ``` dist app: ```text /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/dist/index.html ``` 浏览器 smoke 测试页: ```text /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html ``` 浏览器验证脚本: ```text /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_dist_browser.sh ``` 专项 QA 脚本: ```text /home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/capture-working7-manual-flow-evidence.mjs ``` ## 5. 证据缺口 当前没有缺少构建/自动化 smoke 证据,也已有本轮手册流程专项 JSON/PDF/截图证据。 如后续验收要求“逐条复刻操作手册每一个按钮截图”或“生成新的 Word 汇总报告”,需要补充: - 新的 job_id/report_id。 - 更细粒度的每个按钮截图路径。 - 人工或 Playwright 执行时的目标 URL。 - MDI 历史按钮专项截图。