chore: finalize remaining project artifacts

This commit is contained in:
wangdequan
2026-07-05 22:13:40 -04:00
parent 4224f835dc
commit 6b937a038d
30 changed files with 14093 additions and 46 deletions

View File

@@ -1,5 +1,315 @@
# 03-推进台账
## 2026-07-05 18:57 EDT - Pause 按钮 LinuxCNC AXIS 严格对标修复轮次
### 本轮目标
根据用户反馈“Pause 仍然不好用”,以 `/home/mes123456/cnc_wams/linuxcnc` 源程序中的 `xyzbc-trt`/AXIS 行为为对标基线,严格修复 Web AXIS 工具栏 Pause 按钮。
### 已做事项
- 读取 LinuxCNC 源码:
- `/home/mes123456/cnc_wams/linuxcnc/share/axis/tcl/axis.tcl`
- `/home/mes123456/cnc_wams/linuxcnc/src/emc/usr_intf/axis/scripts/axis.py`
- 确认 LinuxCNC AXIS 行为:
- 菜单 `_Pause` 调用 `task_pause`,菜单 `Resume` 调用 `task_resume`
- 工具栏 `.toolbar.program_pause` 不是独立 pause-only而是调用 `task_pauseresume`
- `task_pauseresume``s.paused` 时发送 `AUTO_RESUME`,否则在 interpreter 非 idle 时发送 `AUTO_PAUSE`
- 修改 Web AXIS UI
- 工具栏 `tbtn_pause` 恢复为单一 `pause-resume` 动作,等价 LinuxCNC `task_pauseresume`
- 移除独立工具栏 Resume 按钮对主路径的依赖;菜单仍保留独立 Pause/Resume。
- 更新按钮来源矩阵,记录 `axis.py:2433-2443 / axis.tcl:543-549`
- 修改 Web 状态机:
- 新增 `PAUSE_RESUME`,根据当前 paused/interpState 在 `PAUSE``RESUME` 间切换。
- `PAUSE_RESUME` 发出的 pause 标记 `source="pauseresume"`,与菜单 Pause 分支区分。
- `linuxcnc-task-policy.js` 中普通菜单 Pause 收紧为 AUTO 且 interpreter reading/waiting工具栏 `pauseresume` 对标 AXIS允许 AUTO/MDI 且 interpreter 非 idle。
- 保留上轮修复的 task/HAL 异步竞态防护RUN 准备阶段可立即暂停,停止 loop 时废弃旧 ticksession 初始化不覆盖 paused。
- 更新 Node/browser smoke
- Node 增加 `pause-resume` 来源矩阵和 reducer 级暂停/继续切换断言。
- Browser 增加工具栏 `task_pauseresume` 真实点击断言暂停、继续、再暂停、Step 后继续,并保留 Run 后立即 Pause 的异步保持断言。
### 验证情况
```text
node --check store.js/linuxcnc-task-policy.js/axis-shell.js/verify_xyzbc_trt_web_app.mjs = ok
xyzbc_trt_web_app_smoke=ok
xyzbc_trt_browser_smoke=ok
gmoccapy_static_build=ok
构建后 xyzbc_trt_browser_smoke=ok
native.status=ok
web.status=ready-for-wasm-runtime
compare.status=pass
compare.summary.checkCount=60
compare.summary.passCount=60
compare.summary.failCount=0
compare.summary.blockers=[]
compare.requiredImprovements=[]
```
### 结论
Pause 已按 LinuxCNC AXIS 源码恢复为工具栏单按钮 `task_pauseresume` 语义:运行中点击暂停,暂停中点击继续;菜单 Pause/Resume 仍保持独立命令。当前 native/Web/compare 复验通过,仍为 `60/60 pass`
## 2026-07-05 18:18 EDT - 按 working 完成全部任务复验轮次
### 本轮目标
按用户要求“按 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working` 完成全部任务”,复核当前 `working` 任务矩阵、执行 P-002 全量复验,并确认 T-001 到 T-077 是否仍保持完成状态。
### 已做事项
- 读取 `working/README.md``04-任务矩阵.md``11-LinuxCNC源码与真实执行严格对标任务.md``12-20260704-真实执行复验与缺失功能工作计划.md`,确认当前任务矩阵 T-001 到 T-077 均标记为完成。
- 使用 `rg`/Node 检查当前 evidence 摘要和文档中的 fail/blocker/required improvement 线索,确认最新硬检查应以 `working/evidence/compare-xyzbc-trt-evidence.json` 为准。
- 重新执行 Web evidence、native LinuxCNC 真实执行采集、native/Web compare、Node smoke、browser smoke 和 build。
- 未发现需要修改源码的失败点;本轮仅刷新 evidence 并补充 `working` 复验记录。
### 验证情况
```text
native.status=ok
native.collectedAt=2026-07-05T18:17:15-0400
native.executionMode=auto-run
native.coverage=35/35
web.status=ready-for-wasm-runtime
web.collectedAt=2026-07-05T22:17:16.154Z
web.coverage=49/49
web.blockers=[]
compare.status=pass
compare.comparedAt=2026-07-05T22:17:25.931Z
compare.summary.checkCount=60
compare.summary.passCount=60
compare.summary.failCount=0
compare.summary.blockers=[]
compare.requiredImprovements=[]
xyzbc_trt_web_app_smoke=ok
xyzbc_trt_browser_smoke=ok
gmoccapy_static_build=ok
```
### 结论
当前 `working` 中 T-001 到 T-077 保持完成状态。按 P-002 重新生成并对比 native/Web evidence 后compare 仍为 `60/60 pass`,没有新增 fail、blocker 或 required improvement除实体硬件接入外Web 仿真项目仍保持与 LinuxCNC `xyzbc-trt` 源码和真实执行双基线对标。
## 2026-07-05 18:08 EDT - 用户要求完全对标复验与文档修订轮次
### 本轮目标
按用户要求,确认 Web 仿真系统 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan` 除硬件相关外,在仿真所有方面完全对标 LinuxCNC 源程序中的 `5axis/table-rotary-tilting/xyzbc-trt` 配置,并完善 `working` 文档后按文档执行复验。
### 已做事项
- 确认用户所述“linuxcnc源程序”的本工作区实际路径为 `/home/mes123456/cnc_wams/linuxcnc`
- 定位 native 权威配置和源码范围:
- `configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini`
- `xyzbc-trt.xml``switchkins_postgui.hal``xyzbc-trt_cmds.hal`
- `remap_subs/*.ngc``demos/xyzbc_switchkins.ngc``demos/boat-xyzbc.ngc`
- `xyzbc-trt.tbl``xyzbc.var`
- `src/emc/kinematics/xyzbc-trt-kins.c``src/emc/kinematics/trtfuncs.c`
- `src/hal/user_comps/vismach/xyzbc-trt-gui.py`
- `rtlib/xyzbc-trt-kins.so``bin/axis``bin/xyzbc-trt-gui``scripts/rip-environment`
- 重新执行 Web evidence、native LinuxCNC 真实执行采集、native/Web compare、Node smoke、browser smoke 和 build。
- 更新 `working/README.md``01-项目功能内容.md``02-项目程序开发详细步骤.md``04-任务矩阵.md``05-验收证据.md`,明确硬件排除边界、最新复验结果和后续强制复验规则。
### 验证情况
```text
native.status=ok
native.collectedAt=2026-07-05T18:07:01-0400
native.coverage=35/35
native.executionMode=auto-run
web.status=ready-for-wasm-runtime
web.collectedAt=2026-07-05T22:06:45.346Z
web.coverage=49/49
web.blockers=[]
compare.status=pass
compare.comparedAt=2026-07-05T22:07:13.768Z
compare.summary.checkCount=60
compare.summary.passCount=60
compare.summary.failCount=0
compare.summary.blockers=[]
compare.requiredImprovements=[]
gmoccapy_static_build=ok
xyzbc_trt_web_app_smoke=ok
xyzbc_trt_browser_smoke=ok
```
### 结论
截至 2026-07-05 18:08 EDTWeb 仿真项目在非硬件仿真范围内继续保持与 LinuxCNC `xyzbc-trt` 源码和真实执行双基线完全对标本轮没有发现新增缺失功能、fail、blocker 或 required improvement。
## 2026-07-04 18:22 EDT - P-002 强制复验收口轮次
### 本轮目标
根据 `working/12-20260704-真实执行复验与缺失功能工作计划.md` 的 P-002 规则,对当前工作区重新执行 native/Web/compare/smoke 复验,确认 `working` 中任务是否仍保持完成状态。
### 已做事项
- 重新执行 Web evidence
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web`
- 输出 `working/evidence/web-xyzbc-trt-evidence.json`
- 重新执行 native LinuxCNC 采集:
- `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py --run --timeout 90`
- 输出 `working/evidence/native-xyzbc-trt-evidence.json`
- 重新执行 native/Web compare
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare`
- 输出 `working/evidence/compare-xyzbc-trt-evidence.json`
- 重新执行 Node smoke 和 browser smoke。
- 更新 `working/README.md``working/05-验收证据.md`,追加本轮复验结果。
### 验证情况
```text
compare.status=pass
compare.summary.checkCount=60
compare.summary.passCount=60
compare.summary.failCount=0
compare.summary.blockers=[]
compare.requiredImprovements=[]
smoke:node=ok
smoke:browser=ok
```
### 结论
当前 `working` 任务保持收口状态T-001 到 T-076 均为完成P-002 变更后强制复验通过。本轮没有发现新增缺失功能,也没有新增 fail/blocker 处置项。
## 2026-07-04 18:12 EDT - 真实执行复验与缺失功能工作计划轮次
### 本轮目标
根据用户要求,重新通过真实执行 native LinuxCNC `xyzbc-trt` 与 Web 仿真项目,分析仿真项目相对 LinuxCNC 源程序是否仍存在缺失功能,并把工作计划写入 `working` 任务文档。
### 已做事项
- 重新执行 native 采集:
- `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 .../tools/collect-native-xyzbc-trt-evidence.py --run --timeout 90`
- 输出 `working/evidence/native-xyzbc-trt-evidence.json`
- 重新执行 Web 采集:
- `npm --prefix .../app run evidence:web`
- 输出 `working/evidence/web-xyzbc-trt-evidence.json`
- 执行 Web Node smoke
- 输出 `xyzbc_trt_web_app_smoke=ok`
- 执行 native/Web compare
- 输出 `compare_xyzbc_trt_status=pass`
- 执行浏览器 smoke
- 输出 `xyzbc_trt_browser_smoke=ok`
- 新增 `working/12-20260704-真实执行复验与缺失功能工作计划.md`
- 更新 `working/README.md``04-任务矩阵.md``05-验收证据.md`,新增 T-076 和本轮证据摘要。
### 验证情况
```text
native.status=ok
native.executionMode=auto-run
native.coverage=35/35
web.status=ready-for-wasm-runtime
web.coverage=49/49
compare.status=pass
compare.checkCount=60
compare.passCount=60
compare.failCount=0
compare.blockers=[]
smoke:node=ok
smoke:browser=ok
```
### 结论
按 2026-07-04 18:12 EDT 重新生成的 native/Web/compare evidence本轮未发现仿真项目相对 LinuxCNC `xyzbc-trt` 的新增缺失功能。后续工作计划转为固定当前 `60/60 pass` 证据、变更后强制复验,以及 fail/blocker 出现时按 compare 的 `requiredImprovements` 追踪处理。
## 2026-07-04 17:57 EDT - T-051 到 T-075 源码/运行双基线实现与复验轮次
### 本轮目标
完成 `working` 中新增的 LinuxCNC 源码与真实执行严格对标任务 T-051 到 T-075把 native/Web/compare evidence 从原有路径与 G 代码过程对比扩展为源码 manifest、启动环境、完整 INI、HAL 图谱、运动学/remap/PyVCP/AXIS/Vismach、真实运行采样、WASM artifact 绑定、错误路径、性能预算和严格验收冻结的双基线检查。
### 已做事项
- 修改 `tools/collect-native-xyzbc-trt-evidence.py`
- 新增 `sourceManifest`,直接从 `/home/mes123456/cnc_wams/linuxcnc` 采集 INI/HAL/XML/TBL/VAR/NGC/C/Python/rtlib/desktop 文件绝对路径、mtime、bytes、sha256、角色。
- 新增 `runtimeLaunch``iniFull``halGraph``kinematicsFormula``remapSemantics``pyvcpPostgui``axisUiSource``vismachStrict``servoTaskTiming``runtimeExecutionObserved``runtimeEvidenceClassification``reverseSourceIndex``performanceBudget``strictAcceptance` 等字段。
- 修正 native INI 全字段解析,保留重复 key确保与 Web 逐行解析一致。
- 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`
- 新增 Web staged 文件 sha256 manifest、完整 INI 字段、HAL/task 模型、WASM artifact sha256/source binding。
- 新增与 native 同名的严格验收字段,覆盖 Web staging hash parity、UI 行为、Vismach、错误路径、性能预算和验收冻结。
- 修改 `tools/compare-xyzbc-trt-evidence.mjs`
- 新增 `strictComparison`,覆盖 T-051 到 T-075。
- 在 compare JSON 顶层输出 `sourceManifestComparison``runtimeLaunchComparison``halGraphComparison``iniFullComparison``kinematicsFormulaComparison``uiBehaviorComparison``visualComparison`
- 将总检查数扩展到 60 项。
- 更新 `working/04-任务矩阵.md`T-051 到 T-075 全部标记为完成。
- 更新 `working/11-LinuxCNC源码与真实执行严格对标任务.md`,记录 T-051 到 T-075 已完成和最新 compare 摘要。
### 验证情况
- `python3 -m py_compile web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py` 通过。
- `node --check web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-web-xyzbc-trt-evidence.mjs` 通过。
- `node --check web-rtcp-5axis-xyzbc-trt-sim-plan/tools/compare-xyzbc-trt-evidence.mjs` 通过。
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web` 通过。
- `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment python3 web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py --run --timeout 80` 通过。
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare` 通过,输出 `compare_xyzbc_trt_status=pass`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
### 最新 compare 摘要
```text
status = pass
summary.checkCount = 60
summary.passCount = 60
summary.failCount = 0
summary.blockers = []
summary.nativeStatus = ok
summary.webStatus = ready-for-wasm-runtime
```
### 结论
T-001 到 T-075 当前全部完成。T-051 到 T-075 已由源码/运行双基线 evidence 和 compare 硬检查覆盖,最新 `compare-xyzbc-trt-evidence.json` 为 60/60 pass 且无 blocker。
## 2026-07-04 17:42 EDT - LinuxCNC 源码与真实执行严格对标任务整理轮次
### 本轮目标
根据用户要求“严格完整地对标 `/home/mes123456/cnc_wams/linuxcnc` 作为 LinuxCNC `xyzbc-trt` 源码与真实执行”,整理新一轮任务,明确后续验收不能只依赖历史 Markdown、旧 evidence 或静态推导,必须以 LinuxCNC 源树与真实运行采样作为 native 权威基线。
### 已做事项
- 复核 `working/README.md``04-任务矩阵.md` 和现有任务状态,确认 T-001 到 T-050 仍保持完成状态。
- 定位 `/home/mes123456/cnc_wams/linuxcnc` 中的 `xyzbc-trt` 权威源:
- `configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini`
- `xyzbc-trt.xml``switchkins_postgui.hal``xyzbc-trt_cmds.hal`
- `xyzbc-trt.tbl``xyzbc.var`
- `demos/xyzbc_switchkins.ngc``demos/boat-xyzbc.ngc`
- `remap_subs/428remap.ngc``429remap.ngc``430remap.ngc``xyzbc_switchkins_sub.ngc``centering.ngc``helix_bc.ngc`
- `src/emc/kinematics/xyzbc-trt-kins.c``src/emc/kinematics/trtfuncs.c`
- `src/hal/user_comps/vismach/xyzbc-trt-gui.py`
- `rtlib/xyzbc-trt-kins.so``bin/axis``bin/xyzbc-trt-gui``scripts/rip-environment`
- `linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop`
- 新增 `working/11-LinuxCNC源码与真实执行严格对标任务.md`按源树权威清单、真实启动采集、INI/HAL 全量解析、运动学公式级验证、remap/switchkins 真实语义、AXIS/PyVCP/Vismach UI、真实执行采样、Web 复现与 compare 升级、截图视觉证据、回归门禁整理任务。
- 更新 `working/04-任务矩阵.md`,新增 T-051 到 T-075全部标记为“待实现”。
- 更新 `working/README.md`,加入新文档索引和当前新增关注点。
- 使用 `rg` 复查 README、任务矩阵和新文档确认 T-051 到 T-075、新文档索引和“待实现”状态可检索。
### 新增任务摘要
- T-051 到 T-054LinuxCNC 源树 manifest、真实启动入口、INI 全字段、HAL 图谱运行态。
- T-055 到 T-059运动学源码公式、M428/M429/M430 remap、PyVCP/POSTGUI、AXIS UI、Vismach 变换树。
- T-060 到 T-067servo/task 时间基准、真实解释器事件、Web staging hash、WASM artifact 绑定、task/HAL 全状态、限制联锁、tool/parameter、Ngcgui/示例程序。
- T-068 到 T-075native/Web 同状态截图、错误路径、compare JSON 双基线升级、禁止静态推导冒充真实运行、一键复验、源码行反向索引、性能误差预算、严格验收冻结。
### 结论
本轮只整理并落档新的严格完整对标任务,没有执行实现和复验。当前 `working` 的新状态是T-001 到 T-050 已完成T-051 到 T-075 为新一轮待实现任务。后续只有当 T-051 到 T-075 全部通过,并生成源码/运行双基线 evidence 与 compare 后,才能声明“严格完整对标 `/home/mes123456/cnc_wams/linuxcnc` 源码与真实执行”完成。
## 2026-07-03 锥形刀尖方向修复轮次
### 本轮目标