完成 xyzbc-trt native Web 证据闭环

This commit is contained in:
mes123456
2026-07-02 15:33:51 -04:00
parent bd00540d88
commit a9a03d20a4
10 changed files with 105546 additions and 36775 deletions

View File

@@ -10903,3 +10903,74 @@ nginx: configuration file /etc/nginx/nginx.conf test is successful
19. 本次按照 AGENTS 规则继续追加当前提交推送过程日志,并准备单独提交和推送日志文件,使过程记录同步到云仓库。
本轮结论OPFS 与 AXIS 首屏等效相关已跟踪改动已经提交并推送到云仓库;生成目录 `app/dist/` 与缓存目录 `tools/__pycache__/` 保留在本地且未提交。
## 2026-07-02 10:32 EDT Codex 执行过程日志
本轮用户要求:接续上一轮,按 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working` 完成全部工作。
执行过程:
1. 读取 `working/README.md``03-推进台账.md``04-任务矩阵.md``05-验收证据.md`,确认剩余工作集中在 T-017、T-019、T-020、T-028、T-030、T-032、T-035、T-037、T-038。
2. 检查 git 状态,发现既有未跟踪项为 `app/dist/``tools/__pycache__/`;后续清理了 `tools/__pycache__/`,保留构建产物 `app/dist/`
3. 阅读并分析 `tools/collect-native-xyzbc-trt-evidence.py``tools/collect-web-xyzbc-trt-evidence.mjs``tools/compare-xyzbc-trt-evidence.mjs``tests/node/verify_xyzbc_trt_web_app.mjs`,确认 compare 原先失败来自 native path 样本和若干全量对标证据缺口。
4. 修改 `tools/collect-native-xyzbc-trt-evidence.py`
- 增加 `XYZBC_DEFAULT_TOOL`
- 增加 native `previewPath` 采集逻辑,按 `xyzbc_switchkins.ngc` 调用参数展开 `xyzbc_switchkins_sub.ngc``helix_bc.ngc`,以 20ms 采样周期生成预览刀路样本。
- 扩展 `executionPath`,将 `linuxcnc.stat()` 执行事件重采样为 20ms 样本,并写入 `taskHal.completed``eventCount`
- 增加 `taskStateFlow``buttonInterlocks``basicSimEquivalent`,记录 native 状态流、按钮联锁、joint/home/spindle/manual toolchange 反馈。
5. 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`
- 增加 `taskHalEquivalence``basicSimEquivalent`
- 增加 `ngcguiExecution`,对 `xyzbc_switchkins_sub.ngc``centering.ngc``helix_bc.ngc` 分别生成临时 machine-file wrapper并通过 `runMachineFileProgram()` 的 WASM machine-file/remap 路径执行。
- 增加 `nativeStateFlowReview`,记录 Web UI 对 native 状态流、按钮、HAL pin、路径的复核证据。
6. 修改 `tools/compare-xyzbc-trt-evidence.mjs`
- compare 检查项从 25 项扩展到 29 项。
- 新增 Ngcgui/remap 子程序 WASM 执行、native basic_sim、Web basic_sim、Web UI 状态流复核检查。
7. 运行验证:
- `npm --prefix app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `python3 -m py_compile tools/collect-native-xyzbc-trt-evidence.py` 通过。
- `npm --prefix app run evidence:web` 通过并生成 `working/evidence/web-xyzbc-trt-evidence.json`
8. 启动 native LinuxCNC
- 使用 `DISPLAY=:1 /home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment linuxcnc /home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini`
- 启动日志显示加载 `basic_sim.tcl``xyzbc-trt-kins``linuxcncsvr``milltask``halui``xyzbc-trt-gui``axis`
- 期间日志出现两条 `Cannot open ini-file` 提示,但核心 LinuxCNC 进程正常运行native evidence 可采集。
9. 在 RIP 环境下重采 native evidence
- `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 tools/collect-native-xyzbc-trt-evidence.py --run --timeout 80` 通过。
- 生成 `working/evidence/native-xyzbc-trt-evidence.json`
10. 重新运行 compare
- `npm --prefix app run evidence:compare` 通过。
- 输出 `compare_xyzbc_trt_status=pass`
- 摘要为 `checkCount=29``passCount=29``failCount=0``blockers=[]`
11. 运行最终构建与浏览器验证:
- `npm --prefix app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
12. 清理本轮启动的 LinuxCNC 进程:
- 先发送 Ctrl-C。
- `linuxcnc -k` 触发了配置选择器,不适合作为停止命令。
- 随后按本轮启动的具体 PID 清理 `axis``linuxcncsvr`、外层 `linuxcnc` shell 和配置选择器。
- 最终 `ps` 检查确认没有 `linuxcnc/milltask/linuxcncsvr/axis/xyzbc-trt/rtapi_app/halui/pickconfig` 残留进程。
13. 更新 `working/04-任务矩阵.md`
- 将 T-017、T-019、T-020、T-028、T-030、T-032、T-035、T-037、T-038 标记为完成。
- 记录当前 T-001 到 T-040 均已完成,最终 compare 为 29/29 通过。
14. 更新 `working/03-推进台账.md`
- 追加“2026-07-02 10:32 EDT - native/Web 全量证据闭环轮次”。
- 记录本轮改动、验证命令、JSON 摘要和结论。
15. 更新 `working/05-验收证据.md`
- 追加“native/Web 全量闭环最终验收”。
- 记录 py_compile、smoke:node、evidence:web、native evidence、evidence:compare、build、smoke:browser 的命令与结果。
16. 最终检查:
- `working/evidence/native-xyzbc-trt-evidence.json``previewPath.sampleCount=3226``executionPath.sampleCount=7``basicSimEquivalent.ready=true``taskStateFlow.ready=true`
- `working/evidence/web-xyzbc-trt-evidence.json``previewPath.sampleCount=3074``executionPath.sampleCount=569``basicSimEquivalent.ready=true``ngcguiExecution.ready=true``nativeStateFlowReview.ready=true`
- `working/evidence/compare-xyzbc-trt-evidence.json``checkCount=29``passCount=29``failCount=0``blockers=[]`
本轮修改文件:
- `web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-web-xyzbc-trt-evidence.mjs`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/tools/compare-xyzbc-trt-evidence.mjs`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/05-验收证据.md`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json`
- `web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json`
最终结论:`working` 任务矩阵 T-001 到 T-040 已全部完成native/Web evidence 和 compare 全量闭环通过;最终验证命令均通过。