补齐 xyzbc-trt Web 路径证据

This commit is contained in:
mes123456
2026-07-02 08:57:59 -04:00
parent 43034b2a91
commit fb128e6b64
13 changed files with 115503 additions and 89 deletions

View File

@@ -10583,3 +10583,156 @@ nginx: configuration file /etc/nginx/nginx.conf test is successful
- 提交内容摘要:该提交包含 274 个文件变化,新增 `web-rtcp-5axis-xyzbc-trt-sim-plan/` 项目文件、测试、文档、截图、证据文件以及 `xyzbc.var` 等内容,共 157294 行新增、1394 行删除。
- 推送执行:执行 `git push origin master`,推送成功,远端 `master``83075c4` 更新到 `c4a721f`
- 后续处理:根据工作区 AGENTS.md 规则,将本次 GPT/Codex 执行过程以中文追加到本日志文件,并准备作为单独日志提交继续推送到云仓库。
## 2026-07-02 08:17:36 EDT - 按 xyzbc-trt working 继续编写程序
1. 收到请求:按 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working` 开始编写程序。
2. 读取工作区 AGENTS.md 要求,确认每轮结束必须将完整执行过程用中文追加到 `/home/mes123456/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
3. 检查 `web-rtcp-5axis-xyzbc-trt-sim-plan/working`,确认已有 01-09 工作文档、evidence JSON 和截图证据。
4. 读取 `working/README.md``01-项目功能内容.md``02-项目程序开发详细步骤.md``04-任务矩阵.md`,确认基础 app 已存在,未完成重点为 pathSampling、previewPath、executionPath、pathComparison、全量 evidence 字段、POSTGUI HAL、Ngcgui、演示程序全集、kinematics pins、TRAJ/AXIS/JOINT 限制和新 native 基线重采集。
5. 检查目标项目源码结构,读取 `tools/collect-web-xyzbc-trt-evidence.mjs``tools/compare-xyzbc-trt-evidence.mjs``tools/collect-native-xyzbc-trt-evidence.py`,发现 Web/native/compare 脚本尚未实现完整 path 字段和全量对标字段native 脚本默认路径仍指向历史 `/home/mes123456/linuxcnc-master`
6. 读取 `app/src/profiles/xyzbc-trt.js``app/src/runtime/linuxcnc-ini-runtime.js``app/src/runtime/linuxcnc-machine-file-staging.js``tests/node/verify_xyzbc_trt_web_app.mjs`,确认 profile 已覆盖 XYZBC、M428/M429/M430、HAL pins、Vismach feedback nets 和 OPFS staging`samplePrograms` 仍包含旧的 `3D_Chips.ngc`,未把 `boat-xyzbc.ngc` 明确作为 xyzbc-trt 演示程序。
7. 修改 `app/src/profiles/xyzbc-trt.js`,将 `samplePrograms` 调整为 `xyzbc_switchkins.ngc``boat-xyzbc.ngc`,对齐 `working` 的演示程序全集要求。
8. 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`,新增统一 `SAMPLE_PERIOD_MS = 20`,并向 Web evidence 写入 `pathSampling``previewPath``executionPath`
9. 在 Web evidence 中新增全量对标字段:`startupSequence``iniDisplay``halNets``kinematicsPins``axisJointLimits``switchkinsTransitions``uiEquivalence``vismachEquivalent``ngcguiSubroutines``demoPrograms`
10. 在 Web evidence 的 `coverage` 中新增 `boatProgramStaged``ngcguiSubroutinesStaged``postguiHalEquivalent``kinematicsPinsCovered``axisJointLimitsCovered``previewPathAvailable``executionPathAvailable` 等检查项。
11. Web path 采集逻辑设计为:如果缺少 `wasm-port/build/wasm/core/linuxcnc_interp.js/.wasm`,则 `previewPath` 明确写入 blocked如果缺 task/HAL artifact`executionPath` 明确写入 blocked不用占位样本伪造通过。
12. 修改 `tools/compare-xyzbc-trt-evidence.mjs`,新增 `pathComparison`,覆盖 `previewVsPreview``executionVsExecution``previewVsExecutionNative``previewVsExecutionWeb`
13. 在 compare 中新增路径检查:采样周期必须为 20ms、native/Web preview path 必须有样本、native/Web execution path 必须有样本、native preview/execution 和 Web preview/execution 必须可比。
14. 在 compare 中新增误差统计字段:`maxTcpErrorMm``rmsTcpErrorMm``maxJointError``rmsJointError``maxToolAxisAngleDeg``sampleCountDelta``missingSamples`
15. 修改 `tools/collect-native-xyzbc-trt-evidence.py`,将默认 source root 切换为 `/home/mes123456/cnc_wams/linuxcnc`,默认 INI 和默认程序均指向该路径。
16. 在 native 脚本中新增 `pathSampling``previewPath``executionPath` 字段;其中 preview path 当前明确 blockedexecution path 可在 `--run` 捕获 `stat()` 事件后重采样为 20ms 样本。
17. 在 native 脚本中新增 `sourceRoot``startupSequence``halNets``kinematicsPins`,并扩展 HAL pin 采集,包含 `x-rot-point``y-rot-point``z-rot-point``conventional-directions`
18. 扩展 native 执行事件,记录 `velocity``feedrate``spindle`,供执行路径样本字段使用。
19. 修改 `tests/node/verify_xyzbc_trt_web_app.mjs`新增断言profile `samplePrograms` 必须是 `xyzbc_switchkins.ngc``boat-xyzbc.ngc`staging 必须包含 `xyzbc_switchkins_sub.ngc``centering.ngc``helix_bc.ngc`
20. 执行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`,通过,输出 `xyzbc_trt_web_app_smoke=ok`
21. 执行 `python3 -m py_compile web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py`,通过,说明 native 采集脚本语法正确。
22. 执行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web`,成功生成 `working/evidence/web-xyzbc-trt-evidence.json`
23. 检查 Web evidence确认 `pathSampling.samplePeriodMs = 20``previewPath.samplePeriodMs = 20``executionPath.samplePeriodMs = 20`,并确认 `startupSequence``halNets``ngcguiSubroutines``demoPrograms` 等字段已写入。
24. 执行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare`,成功生成 `working/evidence/compare-xyzbc-trt-evidence.json`,状态为真实 fail`fail_count=7`
25. compare 结果为 23 项检查中 16 项通过7 项失败均指向当前真实缺口:缺少 `wasm-port/build/wasm` artifact以及 native/Web preview/execution path 样本尚不可比。
26. 执行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build`,失败于 `ENOENT: no such file or directory, scandir '/home/mes123456/cnc_wams/wasm-port/build/wasm/kinematics'`
27. 读取 `app/scripts/build-static.mjs`,确认构建脚本要求真实复制 kinematics/core/tp/task-hal WASM 产物;决定不把 build 改为静默通过,避免掩盖 artifact 缺口。
28. 更新 `working/04-任务矩阵.md`,将 T-017、T-020、T-021、T-023、T-024、T-027、T-030、T-031、T-032、T-033、T-035、T-037 等状态同步为完成、部分完成或待前置。
29. 更新 `working/03-推进台账.md`新增本轮“evidence 字段与路径对比实现轮次”,记录目标、已做事项、修改文件、验证情况和下一步。
30. 更新 `working/05-验收证据.md`,新增 evidence 字段与路径对比实现验收章节,记录 smoke、py_compile、evidence:web、evidence:compare 和 build 的结果。
31. 更新 `working/06-决策记录.md`,新增 D-013明确缺少 WASM artifact 时 build 和 path compare 继续显式失败,不伪造通过。
32. 执行 `git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan`,无输出,说明当前修改没有 whitespace error。
33. 检查 Git 状态,发现运行失败 build 产生了未跟踪 `app/dist/`,运行 py_compile 产生了未跟踪 `tools/__pycache__/`
34. 删除本轮产生的临时目录 `web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist``web-rtcp-5axis-xyzbc-trt-sim-plan/tools/__pycache__`
35. 再次检查状态,确认本轮保留的改动为 profile、测试、三个 evidence/compare 脚本、working 文档、Web/compare evidence JSON。
36. 检查 4174 端口,未发现占用。
37. 启动目标 Web 开发服务器:在 `web-rtcp-5axis-xyzbc-trt-sim-plan/app` 执行 `npm run dev`,当前服务运行在 `http://127.0.0.1:4174/`
38. 本轮结论:已经按 working 要求继续编写程序,完成了 Web/native evidence 字段扩展、路径对比框架、profile 演示程序修正、Node smoke 扩展和文档同步;当前剩余阻塞仍是需要构建 `wasm-port/build/wasm` artifact 并用 `/home/mes123456/cnc_wams/linuxcnc` 重新采集 native evidence。
## 2026-07-02 08:25 EDT - 生成 wasm-port WASM artifact
1. 收到用户请求:生成 WASM artifact。
2. 读取 `wasm-port/README.md``wasm-port/AGENTS.md` 和构建脚本,确认必须在 `wasm-port/build/wasm` 下生成产物,不能修改 upstream LinuxCNC 源码,构建脚本为增量式。
3. 检查 `wasm-port/build/wasm`,确认此前没有目标 `.js/.wasm` 产物。
4. 首次直接执行构建命令失败且无输出,定位原因为当前 shell 未加载 Emscripten 环境,`command -v emcc` 不可用。
5. 搜索到 Emscripten 环境脚本 `/home/mes123456/emsdk/emsdk_env.sh` 和编译器 `/home/mes123456/emsdk/upstream/emscripten/emcc`
6. 显式执行 `source /home/mes123456/emsdk/emsdk_env.sh`,确认 `emcc 6.0.2` 可用。
7. 执行 `wasm-port/tools/build_wasm_core.sh`,生成 interpreter core artifact。
8. 执行 `wasm-port/tools/build_kinematics_wasm.sh`,生成 kinematics artifact其中包含目标 `linuxcnc_xyzbc_trt_kinematics.js/.wasm`
9. 执行 `wasm-port/tools/build_tp_wasm.sh`,生成 trajectory planner artifact。
10. 执行 `wasm-port/tools/build_task_hal_wasm.sh`,生成 task/HAL artifact脚本输出 `linuxcnc_task_hal_wasm_build=ok`
11. 核对目标产物存在:
- `wasm-port/build/wasm/core/linuxcnc_interp.js`
- `wasm-port/build/wasm/core/linuxcnc_interp.wasm`
- `wasm-port/build/wasm/kinematics/linuxcnc_xyzbc_trt_kinematics.js`
- `wasm-port/build/wasm/kinematics/linuxcnc_xyzbc_trt_kinematics.wasm`
- `wasm-port/build/wasm/tp/linuxcnc_tp.js`
- `wasm-port/build/wasm/tp/linuxcnc_tp.wasm`
- `wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js`
- `wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm`
12. 统计 `wasm-port/build/wasm` 下共有 40 个 `.js/.wasm` artifact。
13. 查看构建 stderr 日志,确认主要为既有 warning例如 `rs274ngc_pre.cc` 的格式化 warning 和 shim 中 C23 参数名 warning没有导致构建失败。
14. 执行 `SKIP_KINEMATICS_BUILD=1 wasm-port/tests/wasm/node/verify_kinematics_wasm.sh`,通过,输出 `kinematics_wasm_node_smoke=ok`,其中包含 `xyzbc-trt` kinematics smoke。
15. 执行 `SKIP_TP_BUILD=1 wasm-port/tests/wasm/node/verify_tp_wasm.sh`,通过,输出 `tp_wasm_node_smoke=ok`
16. 执行 `SKIP_TASK_HAL_BUILD=1 wasm-port/tests/wasm/node/verify_task_hal_wasm.sh`,通过,输出 `linuxcnc_task_runtime_smoke=ok``task_status_from_linuxcnc_runtime=ok``task_commands_drive_motion_runtime=ok``mdi_jog_task_motion_hal_sync=ok`
17. 执行 `SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh`,产物被加载,但测试失败于 `interp_g10_l11_wasm`,断言期望 `canon_event=SET_G92_OFFSET x=-41.1962 y=-46.1962 z=-72`;因此 interpreter/remap 完整验收仍未完成。
18. 在目标项目执行 `node tests/node/verify_xyzbc_trt_web_app.mjs`,通过,输出 `xyzbc_trt_web_app_smoke=ok`
19. 执行 `node tools/collect-web-xyzbc-trt-evidence.mjs`,重新生成 `working/evidence/web-xyzbc-trt-evidence.json`
20. 检查 Web evidence确认 `status=ready-for-wasm-runtime``coverage.wasmArtifactsReady=true``wasm.missing=[]`
21. 检查 Web evidence确认 `previewPath.sampleCount=6174`,说明 Web preview path 已由 `linuxcnc_interp` WASM 生成 20ms 样本。
22. 检查 Web evidence确认剩余 blocker 为 `web-execution-path-unavailable`,原因是 task/HAL execution path collector 尚未实现。
23. 执行 `node tools/compare-xyzbc-trt-evidence.mjs`,重新生成 `working/evidence/compare-xyzbc-trt-evidence.json`,结果为 `fail_count=6`
24. 检查 compare summary确认当前 23 项检查中 17 项通过,剩余失败项均与 native preview/execution path 样本缺失或 Web execution path 样本缺失有关,不再包含缺 WASM artifact。
25. 更新 `working/04-任务矩阵.md`:将 T-018 标记为完成,将 T-011 和 T-013 标记为完成,将 T-012 标记为部分完成,将 T-021 标记为完成,并同步 T-017/T-022 状态。
26. 更新 `working/03-推进台账.md`:新增“生成 WASM artifact”轮次记录构建命令、产物、验证结果和后续事项。
27. 更新 `working/05-验收证据.md`:新增 WASM artifact 验收记录,列出目标 artifact、通过的验证命令和未通过的 interpreter 回归项。
28. 更新 `working/06-决策记录.md`:新增 D-012明确 artifact 已生成,后续 blocker 改为路径采集与 interpreter 回归。
29. 核对 Git 状态,确认 `wasm-port/build/wasm` 产物未显示为跟踪改动,说明它们属于生成/忽略产物;本轮保留的跟踪改动为 evidence JSON 与 working 文档。
30. 本轮结论WASM artifact 已生成Web evidence 中 artifact 缺失 blocker 已消除kinematics、TP、task/HAL 验证通过interpreter 仍有 `interp_g10_l11_wasm` 回归断言失败native/Web path 对比仍需补齐 native path 重采集和 Web execution path collector。
## 2026-07-02 08:33 EDT - 完整 interpreter/remap 验收
1. 收到用户请求:完整 interpreter/remap 验收。
2. 检查 `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`,定位上一轮失败点为 `interp_g10_l11_wasm`
3. 读取 `verifyExpectedOutput()` 逻辑,确认该测试逐行检查 output 是否包含 expected 字符串。
4. 读取 `g10-l11` 相关测试代码,确认它通过 `writeG10RegressionFiles("g10-l11", ["test.ngc", "test.tbl"])` 写入 `test.ngc``test.tbl` 和最小 `test.ini`,再调用 `interp.runFileWithIni()`
5. 读取 `wasm-port/vendor/linuxcnc/tests/interp/g10/g10-l11/test.ngc``test.tbl`,确认用例覆盖 G10 L2、G10 L11、G92、G54/G55/G56 和工具长度补偿。
6. 编写一次性 Node ESM 调试命令,使用 `createLinuxCncInterpSdk()` 单独 staging 并运行 `g10-l11`,打印实际 `SET_G92_OFFSET``SET_G5X_OFFSET``USE_TOOL_LENGTH_OFFSET``MESSAGE` 和 file 状态。
7. 调试输出显示 WASM 实际 canonical 事件包含 `SET_G92_OFFSET x=-43.0622 y=-47.4282 z=-72`,而不是旧断言中的 `x=-41.1962 y=-46.1962 z=-72`
8. 读取 `wasm-port/vendor/linuxcnc/tests/interp/g10/g10-l11/expected`,确认 vendored LinuxCNC 当前 expected 同样为 `SET_G92_OFFSET(-43.0622, -47.4282, -72.0000)`
9. 判断失败原因WASM interpreter/remap 行为与 vendored LinuxCNC expected 一致Node 验收脚本中的 G10 L11 期望值过期。
10. 修改 `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`,将 `interp_g10_l11_wasm` 的 expected 从 `x=-41.1962 y=-46.1962 z=-72` 更新为 `x=-43.0622 y=-47.4282 z=-72`
11. 执行 `source /home/mes123456/emsdk/emsdk_env.sh` 后运行 `SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh`
12. 现有 artifact 验证通过,输出 `interp_wasm_node_smoke=ok`
13. 同一命令输出中仍有既有提示 `link (updating variable file): No such file or directory`,以及 `G88.1``M410` remap modalgroup warning这些提示未影响退出码。
14. 继续运行完整入口 `wasm-port/tests/wasm/node/verify_interp_wasm.sh`,不设置 `SKIP_INTERP_BUILD`,确认增量构建入口和完整 Node 验收均可通过。
15. 完整入口同样输出 `interp_wasm_node_smoke=ok`,退出码为 0。
16. 更新 `web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md`,将 T-012 “完整 interpreter/remap WASM 验证”标记为完成。
17. 更新 `working/03-推进台账.md`,新增“完整 interpreter/remap 验收”轮次,记录复现、对标 vendored expected、修改内容、验证命令和下一步。
18. 同步修改 `working/03-推进台账.md` 中上一轮历史状态描述,避免继续显示该项仍未修复。
19. 更新 `working/05-验收证据.md`,把 interpreter/remap 从未通过项改为通过项,并记录 `SKIP_INTERP_BUILD=1` 与完整入口两条命令都输出 `interp_wasm_node_smoke=ok`
20. 更新 `working/06-决策记录.md`,新增 D-013说明 G10 L11 期望值对齐 vendored LinuxCNC expected而不是修改 WASM 运行逻辑。
21. 执行 `git diff --check`,检查 `verify_interp_wasm.mjs` 和本轮 working 文档,没有 whitespace error。
22. 检查 Git 状态,确认本轮新增跟踪改动为 `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` 与 working 文档;已有 Web profile、evidence 脚本、evidence JSON 等改动属于前序轮次保留状态。
23. 本轮结论:完整 interpreter/remap WASM 验收已通过T-012 已完成。剩余项目级 compare 失败仍集中在 native preview/execution path 重采集和 Web task/HAL execution path collector。
## 2026-07-02 - Web task/HAL executionPath 采集实现
1. 收到用户请求:接续上一轮,按 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working` 持续编写程序。
2. 读取工作区文件列表、Git 状态和 `working` 目录文档,确认当前项目已有未提交改动,应作为上一轮成果继续使用,不回退。
3. 读取 `working/03-推进台账.md``04-任务矩阵.md``05-验收证据.md``02-项目程序开发详细步骤.md`,确认当前主要缺口为 Web execution path 采集、native path 重采集和浏览器 smoke。
4. 读取 `tools/collect-web-xyzbc-trt-evidence.mjs``tools/compare-xyzbc-trt-evidence.mjs``app/src/profiles/xyzbc-trt.js`,确认 Web evidence 已有 previewPath 占位和 executionPath 占位compare 已检查 pathComparison。
5. 检查 `wasm-port/build/wasm`,确认当前已存在 `linuxcnc_interp.js/.wasm``linuxcnc_xyzbc_trt_kinematics.js/.wasm``linuxcnc_tp.js/.wasm``linuxcnc_task_hal.js/.wasm`
6. 读取 `app/src/runtime/linuxcnc-task-hal-runtime.js``linuxcnc-task-hal-worker-client.js``wasm-port/runtime/sdk/src/linuxcnc-task-hal.js` 和相关 Node 测试,确认 task/HAL runtime 支持 `initSession``stageFiles``openProgram``loadProgramMotionPlan``sendCommand``runCycles``readStatus`
7. 运行一次 Node ESM 探针,使用 `createLinuxCncInterpreterRuntime()` 加载 `xyzbc_switchkins.ngc`,确认 interpreter 生成 29 个 motion 事件、TP planner 生成 6174 个原始样本,总时长约 61.461 秒。
8. 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`:在 `collectPathEvidence()` 中将 executionPath 从占位错误改为调用 `pathFromTaskHalExecution()`
9. 新增 `pathFromTaskHalExecution()`:复用 interpreter motion 和 planner timing创建 task/HAL sessionstage 机器文件open 程序load motion plan发送 `EMC_TASK_SET_STATE ON``EMC_TASK_SET_MODE AUTO``EMC_TASK_PLAN_RUN`,按 20ms task cycle 读取状态并生成 executionPath 样本。
10. 新增 `xyzbcAxesFromTaskHalStatus()`,显式按 `joint.0/1/2/3/4` 映射 `X/Y/Z/B/C`,避免通用 XYZAC UI 字段把 B/C 轴写错。
11. 新增 `spindleFromTaskHalStatus()``currentMotionTypeForLine()``firstFiniteNumber()` 等 helper用于从 task/HAL status 归一化 path 样本。
12. 首次运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web`,生成 Web evidence 成功,确认 `executionPath.sampleCount=569``source=web-linuxcnc-task-hal-execution``taskHal.completed=true``blockers=[]`
13. 运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare`compare 结果为 `fail_count=5`,确认 Web execution path blocker 已消失,剩余失败均来自 native path 样本缺失。
14. 运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`,通过,输出 `xyzbc_trt_web_app_smoke=ok`
15. 运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build`,通过,输出 `gmoccapy_static_build=ok`,同时产生未跟踪构建目录 `app/dist/`
16. 发现 Web previewPath 原先标记为 20ms但实际使用 TP 1ms 原始样本;判断这是证据质量问题,需要在采集脚本中真实重采样。
17. 修改 `pathFromWebMotion()`,新增 `resamplePlannerSamples()``interpolatePlannerSample()`,将 TP planner 原始样本按 20ms 重新采样后再写入 `previewPath.samples`
18. 新增 `lerpNumber()`,用于预览路径重采样时线性插值轴坐标、速度和剩余距离。
19. 重新运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web`,通过;确认 `previewPath.sampleCount=3074``executionPath.sampleCount=569``blockers=[]`
20. 重新运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare`,结果为 `fail_count=5`,当前 23 项检查中 18 项通过,剩余 5 项均为 native preview/execution path 缺样本或缺 20ms 周期字段。
21. 修改 `tests/node/verify_xyzbc_trt_web_app.mjs`,增加 interpreter + task/HAL 执行反馈 smoke加载 staged `xyzbc_switchkins.ngc`,执行 task/HAL 若干 20ms cycle断言 HAL sync、activeLine 和 XYZ 轴反馈可读。
22. 重新运行 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`,通过,输出 `xyzbc_trt_web_app_smoke=ok`
23. 更新 `working/04-任务矩阵.md`T-017 改为 18/23 通过且剩余 5 项为 native pathT-021 改为 3074 个 20ms 重采样 preview 样本T-022 标记为完成,记录 569 个 20ms task/HAL execution 样本。
24. 更新 `working/03-推进台账.md`新增“Web task/HAL executionPath 采集实现轮次”,记录实现内容、验证结果和下一步。
25. 更新 `working/05-验收证据.md`:将顶部当前结果更新为 `fail_count=5``gmoccapy_static_build=ok`,新增 Web task/HAL executionPath 采集验收小节。
26. 执行 `python3 -m py_compile tools/collect-native-xyzbc-trt-evidence.py``git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan`,均无输出,表示通过。
27. 检查 compare JSON 摘要,确认 `passCount=18``failCount=5``blockers=[]``webStatus=ready-for-wasm-runtime`
28. 检查 Git 状态,确认本轮主要修改为 `collect-web-xyzbc-trt-evidence.mjs``verify_xyzbc_trt_web_app.mjs`、Web/compare evidence JSON 和 working 文档;同时保留前序轮次已有的 profile、native collector、compare、wasm-port 测试和日志改动。
29. 本轮结论Web 侧 previewPath 和 executionPath 都已具备真实 20ms 样本compare 剩余失败已收敛到 native evidence 尚未重采集 path 样本。下一步应在 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment` 下重跑 native evidence再重跑 compare。
## 2026-07-02 - 安装 curl
1. 收到用户请求:安装 `curl`
2. 执行 `command -v curl`,确认当前系统未找到 `curl` 可执行文件。
3. 检查包管理器,确认系统使用 `apt-get`
4. 执行 `id -u``sudo -n true`,确认当前用户不是 root但具备无交互 sudo 权限。
5. 执行 `sudo apt-get update && sudo apt-get install -y curl`
6. apt 更新命中 Debian trixie、trixie-updates、trixie-security、Microsoft VS Code 和 Google Chrome 软件源。
7. apt 安装 `curl` 包,版本为 `8.14.1-2+deb13u3`,新增占用约 507 kB。
8. 安装过程中 debconf 因无交互终端回退到 Noninteractive未影响安装结果。
9. 执行 `curl --version | head -1`,验证 `curl 8.14.1` 已可用。
10. 本轮结论:`curl` 已安装完成,可直接在后续命令中使用。