结论:完成 LinuxCNC kinematics WASM ABI 覆盖,并将 web-rtcp-5axis-sim-plan 的 RTCP frame/boundary adapter 接到 xyzac-trt kinematics SDK;Node、build、browser smoke 验证通过。
380 lines
9.6 KiB
Plaintext
380 lines
9.6 KiB
Plaintext
text38.txt
|
||
|
||
一、接续说明
|
||
|
||
执行时间:2026-06-20 CST
|
||
|
||
本文件专门关闭下面这个问题:
|
||
|
||
```text
|
||
剩余 77 个 SKIP 中哪些是真正可 promotion 的 main-program row?
|
||
```
|
||
|
||
结论不是“还要继续逐条找”,而是:
|
||
|
||
```text
|
||
当前没有可直接 promotion 的 skipped main-program row。
|
||
baseline 不能继续因为这 77 个 SKIP 而变化。
|
||
```
|
||
|
||
本文件的作用是把该结论整理成可执行、可复查、可防回归的方法,供后续接续时直接引用,
|
||
避免下一轮再次重复总复核。
|
||
|
||
二、已确认事实
|
||
|
||
当前 inventory baseline 已重新生成并复核:
|
||
|
||
```text
|
||
sim_configs_wasm_node_inventory_executed=82
|
||
sim_configs_wasm_node_inventory_passed=82
|
||
sim_configs_wasm_node_inventory_skipped=77
|
||
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||
```
|
||
|
||
77 个 SKIP 的构成已经固定为:
|
||
|
||
```text
|
||
ASSET-ONLY=65
|
||
L4-USER-M-PROCESS=1
|
||
NON_MAIN_CLASS=10
|
||
UPSTREAM-DEMO=1
|
||
```
|
||
|
||
其中真正 `class=main` 的 skipped row 只有 2 个:
|
||
|
||
```text
|
||
axis/vismach/millturn/example.ngc
|
||
axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc
|
||
```
|
||
|
||
这 2 个 row 当前均为:
|
||
|
||
```text
|
||
promotion_allowed=0
|
||
promotion_ready=0
|
||
```
|
||
|
||
因此最终判定:
|
||
|
||
```text
|
||
remaining_skip_count=77
|
||
remaining_skipped_main_program_rows=2
|
||
remaining_skipped_main_program_promotion_allowed=0
|
||
direct_inventory_promotion_rows=0
|
||
baseline_change_allowed=no
|
||
```
|
||
|
||
三、问题关闭判定
|
||
|
||
该问题已经完全解决,理由如下:
|
||
|
||
```text
|
||
1. 审计对象已经限定:
|
||
只检查 current_status=SKIP 且 class=main 的 row。
|
||
|
||
2. 审计数据已经落盘:
|
||
remaining-skip-main-program-promotion-audit.tsv 已生成并被 docs smoke 检查。
|
||
|
||
3. 审计结果已经闭环:
|
||
当前只有 2 个 skipped main-program row,且 promotion_allowed 全部为 0。
|
||
|
||
4. 非 main-program SKIP 已排除:
|
||
ASSET-ONLY=65 和 NON_MAIN_CLASS=10 不能伪装成 standalone main-program PASS。
|
||
|
||
5. blocked runtime / invalid upstream demo 已排除:
|
||
L4-USER-M-PROCESS 缺 promotion proof;
|
||
UPSTREAM-DEMO 缺有效 motion G-code;
|
||
两者都不能直接 promotion。
|
||
```
|
||
|
||
所以后续不应再把“复核 77 个 SKIP 哪些可 promotion”当作开放任务。
|
||
|
||
四、逐类处理方法
|
||
|
||
1. ASSET-ONLY=65
|
||
|
||
处理规则:
|
||
|
||
```text
|
||
不 promotion。
|
||
不计入 standalone main-program promotion 候选。
|
||
不为了降低 SKIP 数量改成 PASS。
|
||
```
|
||
|
||
原因:
|
||
|
||
```text
|
||
这些 row 是 source asset / dependency / support file,不是可独立运行的 main-program。
|
||
即使它们对某个 PASS row 有贡献,也只能作为 source coverage 或 evidence dependency,
|
||
不能独立改变 inventory PASS baseline。
|
||
```
|
||
|
||
允许后续动作:
|
||
|
||
```text
|
||
1. 作为已 PASS row 的 evidence dependency 引用;
|
||
2. 在 diagnostics/release artifact 中展示 source coverage;
|
||
3. 不改变 current_status=SKIP 的 inventory 语义。
|
||
```
|
||
|
||
2. NON_MAIN_CLASS=10
|
||
|
||
处理规则:
|
||
|
||
```text
|
||
不 promotion。
|
||
不重分类为 main,除非 LinuxCNC source / inventory classifier 明确变化。
|
||
不作为 baseline promotion 候选。
|
||
```
|
||
|
||
原因:
|
||
|
||
```text
|
||
这些 row 不是 standalone main-program class。
|
||
promotion 的目标是可作为主程序执行并被 Node/WASM/browser proof 覆盖的 row。
|
||
```
|
||
|
||
允许后续动作:
|
||
|
||
```text
|
||
1. 保持分类;
|
||
2. 如果 classifier 规则改变,先重跑 inventory 并检查 drift;
|
||
3. 只有 class 真实变为 main 后,才进入 skipped main-program audit。
|
||
```
|
||
|
||
3. L4-USER-M-PROCESS=1
|
||
|
||
对应 row:
|
||
|
||
```text
|
||
axis/vismach/millturn/example.ngc
|
||
```
|
||
|
||
当前状态:
|
||
|
||
```text
|
||
class=main
|
||
skip_kind=L4-USER-M-PROCESS
|
||
native_status=PASS
|
||
simulation_proof_status=ready_disabled_by_default:native=0:node=0:browser=0
|
||
promotion_allowed=0
|
||
```
|
||
|
||
处理规则:
|
||
|
||
```text
|
||
当前不 promotion。
|
||
Web/virtual HAL 状态 proof 只能证明页面和虚拟 HAL 仿真链路可展示相关状态,
|
||
不能替代 external user-M arbitrary process execution 的 runtime promotion proof。
|
||
```
|
||
|
||
要让它未来可重新进入 promotion 讨论,必须先满足:
|
||
|
||
```text
|
||
1. native opt-in runtime probe 真正通过;
|
||
2. millturn_user_m_runtime_probe_status=runtime_state_probe_passed;
|
||
3. execution gate 有明确 artifact 证明;
|
||
4. Node inventory promotion gate 重新计算后给出 promotion_allowed=1;
|
||
5. browser/host proof 补齐;
|
||
6. manual promotion lock review 明确放行。
|
||
```
|
||
|
||
在这些条件满足前,禁止动作:
|
||
|
||
```text
|
||
1. 禁止仅凭 virtual HAL proof 改 PASS;
|
||
2. 禁止仅凭 native_status=PASS 改 PASS;
|
||
3. 禁止手写 promotion_allowed=1;
|
||
4. 禁止把 baseline 从 82/82/77/0 往前推。
|
||
```
|
||
|
||
4. UPSTREAM-DEMO=1
|
||
|
||
对应 row:
|
||
|
||
```text
|
||
axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc
|
||
```
|
||
|
||
当前状态:
|
||
|
||
```text
|
||
class=main
|
||
skip_kind=UPSTREAM-DEMO
|
||
native_status=FAIL
|
||
native_expected_failure=upstream-demo-missing-motion-gcode
|
||
promotion_allowed=0
|
||
```
|
||
|
||
处理规则:
|
||
|
||
```text
|
||
当前不 promotion。
|
||
不能为了 baseline 变化修补或替换 LinuxCNC upstream demo 的语义。
|
||
```
|
||
|
||
允许后续动作:
|
||
|
||
```text
|
||
1. 保留为 upstream invalid/demo edge;
|
||
2. 在 docs 中说明它不是可执行 motion main-program;
|
||
3. 如果 upstream source 将来修复,先更新 vendor source,再重跑 inventory;
|
||
4. 只有 native/WASM/browser proof 全部重算后,才允许重新评估。
|
||
```
|
||
|
||
五、以后如何复查而不重做总复核
|
||
|
||
后续如果有人再次问“77 个 SKIP 中还有没有可 promotion main-program row”,
|
||
不要重新从 77 行人工审起,按下面方法复查即可。
|
||
|
||
第一步:重新生成 inventory artifact
|
||
|
||
```bash
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
```
|
||
|
||
第二步:只看两个关键 artifact
|
||
|
||
```text
|
||
wasm-port/build/wasm/sim-configs-inventory/skip-summary.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv
|
||
```
|
||
|
||
第三步:确认 skip summary 是否仍为当前结构
|
||
|
||
期望:
|
||
|
||
```text
|
||
ASSET-ONLY=65
|
||
L4-USER-M-PROCESS=1
|
||
NON_MAIN_CLASS=10
|
||
UPSTREAM-DEMO=1
|
||
```
|
||
|
||
如果一致,则不重开问题。
|
||
|
||
第四步:确认 audit 行数和 promotion_allowed
|
||
|
||
期望:
|
||
|
||
```text
|
||
remaining-skip-main-program-promotion-audit.tsv 只有 2 行;
|
||
两行 class=main;
|
||
两行 promotion_allowed=0;
|
||
两行 promotion_ready=0;
|
||
路径分别是:
|
||
axis/vismach/millturn/example.ngc
|
||
axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc
|
||
```
|
||
|
||
如果一致,则结论仍是:
|
||
|
||
```text
|
||
direct_inventory_promotion_rows=0
|
||
baseline_change_allowed=no
|
||
```
|
||
|
||
六、允许重开问题的唯一条件
|
||
|
||
只有出现以下任一 drift,才允许重开“剩余 SKIP promotion”问题:
|
||
|
||
```text
|
||
1. remaining-skip-main-program-promotion-audit.tsv 行数不再是 2;
|
||
2. audit 中出现新的 class=main skipped row;
|
||
3. 任一 audit row 的 promotion_allowed 变为 1;
|
||
4. 任一 audit row 的 promotion_ready 变为 1;
|
||
5. skip-summary.tsv 的四类计数发生变化;
|
||
6. L4-USER-M-PROCESS native opt-in runtime probe 变为 runtime_state_probe_passed;
|
||
7. UPSTREAM-DEMO row 的 native_expected_failure 不再是 upstream-demo-missing-motion-gcode;
|
||
8. inventory classifier 明确改变了 ASSET-ONLY 或 NON_MAIN_CLASS 的 class 语义。
|
||
```
|
||
|
||
如果没有这些 drift,禁止重新打开总复核。
|
||
|
||
七、推荐验证命令
|
||
|
||
关闭该问题时的最小验证:
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
|
||
```
|
||
|
||
如果后续涉及 release / browser evidence,还应追加:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
```
|
||
|
||
如果后续专门尝试 L4-USER-M-PROCESS promotion proof,还应追加:
|
||
|
||
```bash
|
||
bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
|
||
wasm-port/tests/native/verify_native_probes.sh
|
||
```
|
||
|
||
但这些 native probe 只有在明确选择 L4-USER-M-PROCESS runtime 主线时才需要跑,
|
||
不作为当前 77 SKIP 问题关闭的必要条件。
|
||
|
||
八、后续工作分流
|
||
|
||
该问题关闭后,后续只能走两条线之一。
|
||
|
||
第一条:继续当前 smoke 收尾
|
||
|
||
```text
|
||
目标:
|
||
继续收敛 real_simulation_page_smoke.html 中 review/statusbar/external-shell
|
||
相关重复断言。
|
||
|
||
边界:
|
||
不改 inventory baseline;
|
||
不改 diagnostics artifact schema;
|
||
不改 release artifact schema;
|
||
不重开 77 SKIP 总复核。
|
||
```
|
||
|
||
第二条:切回 promotion 主线
|
||
|
||
promotion 主线不能从“77 个 SKIP 里继续找”开始,而应二选一:
|
||
|
||
```text
|
||
1. L4-USER-M-PROCESS runtime proof:
|
||
先解决 native opt-in runtime probe;
|
||
目标是 runtime_state_probe_passed;
|
||
通过后再进入 inventory promotion gate。
|
||
|
||
2. 已 PASS row evidence expansion:
|
||
继续扩展 browser diagnostics / release evidence;
|
||
优先选择 current_status=PASS 且已有 matrix/browser REP 基础的 row;
|
||
不改变 inventory baseline=82/82/77/0。
|
||
```
|
||
|
||
九、最终接续结论
|
||
|
||
本问题的最终处理口径:
|
||
|
||
```text
|
||
不要继续尝试把剩余 77 个 SKIP 直接改 PASS。
|
||
当前没有可直接 promotion 的 skipped main-program row。
|
||
baseline 保持 82/82/77/0。
|
||
后续只有 audit drift 或 runtime proof drift 出现时,才允许重开 promotion 评估。
|
||
```
|
||
|
||
下一轮如果继续做当前实际工作,优先接:
|
||
|
||
```text
|
||
text37.txt 中列出的 real_simulation_page_smoke.html
|
||
review/statusbar/external-shell badge 重复断言收尾。
|
||
```
|
||
|
||
下一轮如果切回 promotion,优先接:
|
||
|
||
```text
|
||
L4-USER-M-PROCESS native opt-in runtime probe,
|
||
而不是重新复核 77 个 SKIP。
|
||
```
|