按text22收束promotion证据

结论:完成 evidence-ready / inventory-ready 双层 promotion candidate 管理,release/SDK gate 已纳入 virtual HAL promotion summary,baseline 保持 28/28/131/0,Python remap、tool DB、external user-M hard block 继续 locked。
This commit is contained in:
2026-06-18 17:20:29 +08:00
parent 014081f1f9
commit 1c94ea4527
29 changed files with 8500 additions and 121 deletions

265
text19.txt Normal file
View File

@@ -0,0 +1,265 @@
项目接续文件:利用 virtual HAL 成果推进 sim config baseline promotion
生成时间2026-06-18 CST
本文件接替 `text18.txt`。后续继续推进时优先参考 `text19.txt`;除非明确要求审计
旧记录,不再回到 `text1` 到 `text18` 扩展历史实现。
一、方向纠偏
上一版表述容易被误读为“转向非 virtual HAL不再使用 virtual HAL 成果”。正确方向是:
```text
virtual HAL runtime capability 已收尾;后续不继续扩展 virtual HAL 新功能,
但要利用已完成的 virtual HAL source-derived evidence、browser diagnostics、
release gate 和 motion matrix继续推进 sim config coverage / baseline promotion。
```
执行含义:
- 不新增 virtual HAL runtime capability
- 不新增 unrelated virtual HAL UI 面板、filter、drilldown 类功能;
- 不把 virtual HAL 当成 JS CNC 语义替代品;
- 允许并且应该复用 virtual HAL 已有成果作为 promotion evidence
- source compliance
- sim-config source coverage
- promotion candidate report
- macro/load fixture report
- command script fixtures
- manifest-backed motion controller matrix
- browser diagnostics artifact
- release readiness / URL workflow / batch acceptance evidence。
二、当前 baseline
当前 Node inventory baseline 仍为:
```text
executed=28
passed=28
skipped=131
unexpected_fail=0
```
当前已经完成的 virtual HAL promotion evidence 不等同于 inventory skip count 下降。它已经把
一批 Node `INV` / representative rows 推进到了 browser diagnostics / release evidence 层,
但如果要让 `executed/passed/skipped` 变化,仍必须修改并运行真实 inventory execution path。
三、已具备的 promotion evidence
当前 SDK / browser / release gate 已覆盖 Tier 1 promotion candidate report
- `qtdragon/qtdragon_multi_joint/on_abort.ngc`
- `qtdragon/qtdragon_xyz/on_abort.ngc`
- `qtdragon/qtdragon_xyz45/on_abort.ngc`
- `qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc`
- `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc`
- `qtvcp_screens/qtdragon/on_abort.ngc`
- `axis/vismach/puma/puma_seam_weld.ngc`
- `axis/rose_engine/rcone_demo.ngc`
这些 row 的当前性质:
- LinuxCNC source/config evidence 完整;
- current Node inventory status 为 `PASS`
- blocked kind 为 `-`
- target browser evidence 为 `explicit-browser-diagnostics`
- release diagnostics validation 已要求 promotion candidate summary
- inventory baseline 保持不变。
当前 macro/load 非主程序 evidence 已覆盖:
- `axis/rose_engine/rcone.ngc`
- `axis/external_offsets/queuebuster.ngc`
这些只能作为 non-main fixture diagnostics evidence不作为 standalone main program promotion。
四、不可突破边界
以下 family 仍不能靠 virtual HAL、JS glue 或 browser UI 伪装解锁:
- Linux kernel hard-realtime ABI
- 外部硬件驱动 ABI
- native HAL module ABI
- Python UI process emulation
- Python remap runtime
- tool database process protocol
- external user-M process execution
- upstream-invalid demo code。
因此以下 blocked kind 仍保持 locked
- `L4-PYTHON-REMAP`
- `L4-TOOL-DB`
- `L4-USER-M-PROCESS`
- `UPSTREAM-DEMO`
- standalone-main 语境下的 `ASSET-ONLY`
五、下一步主线目标
目标仍是从:
```text
executed=28
passed=28
skipped=131
```
推进到更高完成度。第一阶段建议目标:
```text
executed >= 35
passed == executed
skipped <= 124
unexpected_fail=0
```
但推进方式应是:
1. 先复用 virtual HAL 已建立的 source-derived evidence确认候选 family 的 browser/release
evidence 已 ready
2. 再找出当前 inventory 中还没有执行、但依赖已被 virtual HAL / HALUI / deterministic
UI declarations / machine files / tool tables / remap asset staging 覆盖的 main program
3. 只把 LinuxCNC-backed runtime 能真实执行通过的 row 纳入 inventory
4. 同步更新 docs、release artifact fixture、SDK/host gate baseline 断言。
六、候选选择原则
优先方向:
- Tier 1 已有 promotion evidence 周边 family
- QtDragon on-abort family
- PUMA / vismach remap family
- rose-engine family
- 当前 matrix 中 `blocked=-`、`class=main`、native `PASS`、但尚未进入 browser explicit evidence
或 inventory execution 的 row
- 已有 tool-table fallback、vendored INI/G-code/source evidence、无 Python/process hard block 的 row
- 已有 virtual HAL command/motion matrix 可以解释 HAL/UI/motion 依赖的 row。
禁止方向:
- 不把 Python remap pass 当作 browser/Node full promotion
- 不把 tool DB native pass 当作 WASM process protocol pass
- 不把 external user-M process pass 当作 virtual HAL deterministic M110/M111 边界;
- 不把 macro/load asset 当 standalone main
- 不靠改 docs 声称 skipped 降低。
七、建议执行步骤
### 第一步:复核当前 virtual HAL promotion gate
最小命令:
```text
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
```
确认:
- `VIRTUAL_HAL_SIM_CONFIG_PROMOTION_CANDIDATES` 仍包含 8 个 Tier 1 row
- candidate report `complete === true`
- `webSimulationSatisfied === true`
- `inventoryBaselineUnchanged === true`
- blocked candidate count 为 0
- release gate / URL workflow 仍要求 candidate summary。
### 第二步:生成真实 inventory promotion candidate 清单
不要只列 hard-block skipped main row应输出两个层级
- evidence-ready candidates已有 virtual HAL/browser/release evidence适合继续升 browser/release
覆盖;
- inventory-ready candidates确实可从 skipped 推进到 executed 的 main program。
建议输出:
```text
wasm-port/build/wasm/sim-configs-inventory/promotion-candidates.tsv
```
字段至少包含:
- path
- ini
- current inventory status
- matrix layer4 node/browser status
- class
- native status
- blocked kind
- dependency class
- virtual HAL evidence ready
- inventory promotion allowed
- block reason
- recommended next command。
### 第三步:推进第一批真实 inventory rows
一次只推进 5 到 8 个 row。每个 row 必须说明:
- LinuxCNC source/config/runtime evidence
- 为什么已有 virtual HAL evidence 能覆盖 HAL/UI/motion 依赖;
- 为什么不是 JS/browser 自行补 CNC 语义;
- 为什么不属于 `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、
`UPSTREAM-DEMO` 或 standalone `ASSET-ONLY`
- 执行后 baseline 如何变化。
### 第四步:同步 release packaging
baseline 真变化后,同步更新:
- generated sim-config inventory artifact
- `wasm-port/docs/sim-configs-coverage-matrix.md`
- `wasm-port/docs/sim-config-coverage-promotion-analysis.md`
- release readiness artifact fixture
- SDK / host gate 的 baseline 断言;
- browser diagnostics / URL workflow 中的 baseline 文案。
八、验收标准
一次真实 baseline promotion 完成条件:
1. 新 baseline artifact 真实生成;
2. `executed` 和 `passed` 同步增加;
3. `skipped` 同步减少;
4. `unexpected_fail` 仍为 `0`
5. 新增 rows 不属于 blocked family
6. virtual HAL evidence 是 source-derived support不是 CNC 语义替代;
7. `verify_no_standalone_cnc_semantics.sh` 仍通过;
8. 最小相关 gate 通过;
9. 文档记录变更前/后 baseline、新增 rows、blocked family lock 状态和验证命令。
建议最小验证命令:
```text
git diff --check
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
```
如改动涉及 browser/release 页面,再额外运行:
```text
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
```
九、下一步工作内容
下一轮建议直接做:
```text
基于现有 virtual HAL promotion candidate report生成 evidence-ready / inventory-ready
双层 promotion-candidates.tsv然后从 blocked=-、native PASS、class=main 的 row 中筛出
第一批 5-8 个可真实进入 inventory execution 的候选,试运行并更新 baseline。
```
优先候选 family
- QtDragon on-abort family 周边;
- PUMA / vismach remap family
- rose-engine family
- 其他已 vendored、无 Python/process hard block、可由 virtual HAL 解释 HAL/UI/motion 依赖的
main program。