继续完成 web-rtcp-5axis-sim-plan

结论:完成 LinuxCNC kinematics WASM ABI 覆盖,并将 web-rtcp-5axis-sim-plan 的 RTCP frame/boundary adapter 接到 xyzac-trt kinematics SDK;Node、build、browser smoke 验证通过。
This commit is contained in:
2026-06-21 16:44:29 +08:00
parent a6eda3fbff
commit 626bcfe8e3
101 changed files with 101586 additions and 770 deletions

379
textbak/text38.txt Normal file
View File

@@ -0,0 +1,379 @@
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。
```