继续完成 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:
691
textbak/text25.txt
Normal file
691
textbak/text25.txt
Normal file
@@ -0,0 +1,691 @@
|
||||
项目接续文件:L4-PYTHON-REMAP OPFS/WASM runtime milestone 执行计划
|
||||
|
||||
生成时间:2026-06-19 CST
|
||||
|
||||
本文件接替 `text24.txt`,整理当前完成情况,并明确下一步:
|
||||
|
||||
```text
|
||||
剩余 hard block 先做 L4-PYTHON-REMAP;
|
||||
L4-USER-M-PROCESS 放在 Python remap lifecycle proof 之后。
|
||||
```
|
||||
|
||||
重要边界:
|
||||
|
||||
```text
|
||||
本文件是单独 hard-block runtime milestone 的执行计划。
|
||||
不是 virtual HAL 新功能计划,也不是直接批量 promotion 计划。
|
||||
|
||||
当前禁止事项:
|
||||
- 不用 JavaScript 重写 Python remap / prolog / epilog CNC 语义;
|
||||
- 不把 Python runtime 可 import 当成 remap pass;
|
||||
- 不把 NGC-only subroutine asset 当 standalone main program;
|
||||
- 不一次性解锁全部 53 个 L4-PYTHON-REMAP rows;
|
||||
- 不因为 native probe 通过就自动改 promotion_allowed;
|
||||
- L4-USER-M-PROCESS 仍不做 arbitrary external process execution。
|
||||
```
|
||||
|
||||
一、当前完成情况快照
|
||||
|
||||
1. virtual HAL 已接入 Web 数控仿真。
|
||||
|
||||
已通过真实 browser simulation smoke:
|
||||
|
||||
```bash
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```text
|
||||
browser_real_simulation_page_smoke=ok
|
||||
```
|
||||
|
||||
当前 virtual HAL 覆盖范围:
|
||||
|
||||
- browser HAL pin/signal/param state;
|
||||
- virtual `halcmd` command workflow;
|
||||
- ESTOP / power / home / jog / spindle / coolant state;
|
||||
- motion controller matrix;
|
||||
- virtual HAL session save/restore;
|
||||
- browser diagnostics / release evidence。
|
||||
|
||||
边界不变:
|
||||
|
||||
- G-code / interpreter / planner / canonical motion 语义仍来自 LinuxCNC-backed WASM;
|
||||
- virtual HAL 不提供 Linux kernel hard-realtime ABI;
|
||||
- virtual HAL 不提供外部硬件驱动 ABI 或 native HAL module ABI;
|
||||
- virtual HAL 不解锁 Python remap、external user-M process。
|
||||
|
||||
2. L4-TOOL-DB proof 已完成接入,但仍要按 promotion lock 规则处理。
|
||||
|
||||
已通过聚合 proof:
|
||||
|
||||
```bash
|
||||
wasm-port/tests/host/verify_tool_db_process_proof.sh
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```text
|
||||
tool_db_process_port_sdk=ok
|
||||
tool_db_store_opfs=ok
|
||||
tool_db_process_port_wasm=ok
|
||||
browser_tool_db_process_smoke=ok
|
||||
tool_db_process_proof=ok
|
||||
```
|
||||
|
||||
已通过 native opt-in DB_PROGRAM protocol probe:
|
||||
|
||||
```bash
|
||||
ENABLE_TOOL_DB_RUNTIME_PROBE=1 wasm-port/tests/native/probe_tool_db_runtime.sh
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
tool_db_protocol_version=v2.1
|
||||
tool_db_get_all_count=10
|
||||
tool_db_put_tool_update_state_ok=1
|
||||
tool_db_load_spindle_state_ok=1
|
||||
tool_db_unload_spindle_state_ok=1
|
||||
tool_db_persistence_state_ok=1
|
||||
tool_db_runtime_probe_status=runtime_protocol_probe_passed
|
||||
```
|
||||
|
||||
结论:
|
||||
|
||||
```text
|
||||
L4-TOOL-DB 的 native / SDK / OPFS / WASM / browser proof chain 已经成立。
|
||||
后续不应再把主要精力放在 Tool DB runtime substrate 上,除非是 promotion lock
|
||||
收尾或 gate drift 修复。
|
||||
```
|
||||
|
||||
3. 当前 sim-config inventory 快照。
|
||||
|
||||
当前 `wasm-port/build/wasm/sim-configs-inventory/summary.tsv` 统计:
|
||||
|
||||
```text
|
||||
total=159
|
||||
pass=29
|
||||
skip=130
|
||||
fail=0
|
||||
```
|
||||
|
||||
当前 `skip-summary.tsv`:
|
||||
|
||||
```text
|
||||
ASSET-ONLY=65
|
||||
L4-PYTHON-REMAP=53
|
||||
L4-USER-M-PROCESS=1
|
||||
NON_MAIN_CLASS=10
|
||||
UPSTREAM-DEMO=1
|
||||
```
|
||||
|
||||
注意:
|
||||
|
||||
```text
|
||||
这里已经不是 text24.txt 中的旧 baseline:
|
||||
executed=28 passed=28 skipped=131 unexpected_fail=0。
|
||||
|
||||
当前可见 generated inventory 已是:
|
||||
PASS=29 SKIP=130 FAIL=0。
|
||||
后续文件和 gate 必须以当前 artifact 为准,不能沿用过期 baseline。
|
||||
```
|
||||
|
||||
4. 当前剩余 hard block。
|
||||
|
||||
主要剩余:
|
||||
|
||||
```text
|
||||
L4-PYTHON-REMAP: 53
|
||||
L4-USER-M-PROCESS: 1
|
||||
```
|
||||
|
||||
推荐顺序:
|
||||
|
||||
```text
|
||||
1. L4-PYTHON-REMAP
|
||||
2. L4-USER-M-PROCESS
|
||||
```
|
||||
|
||||
理由:
|
||||
|
||||
- `L4-PYTHON-REMAP` 覆盖面最大,解决后可复用到 53 个 rows;
|
||||
- Tool DB milestone 已经建立 Python/WASM Worker、runtime port、browser proof、OPFS/diagnostics 的可复用模式;
|
||||
- `L4-USER-M-PROCESS` 只有 1 个 row,且浏览器不能支持 arbitrary external process,只能做受控 state-transition proof;
|
||||
- 先做 Python remap lifecycle substrate,能为后续 user-M 的受控 runtime proof 提供更成熟的边界模型。
|
||||
|
||||
二、L4-PYTHON-REMAP 当前已有基础
|
||||
|
||||
已有 machine-readable artifacts:
|
||||
|
||||
```text
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-boundary-summary.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-family-summary.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-runtime-contract.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-runtime-gates.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-alignment.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-readiness.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-state-plan.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-fixture-plan.tsv
|
||||
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-probe-gate.tsv
|
||||
```
|
||||
|
||||
当前选定最小 fixture:
|
||||
|
||||
```text
|
||||
family=axis/remap/stop-lookahead/nc_files
|
||||
fixture_id=stop_lookahead_python_runtime_lifecycle
|
||||
fixture_scope=no_python_callables_no_ngc_only_subpaths
|
||||
```
|
||||
|
||||
原因:
|
||||
|
||||
- 适合作为 Python runtime lifecycle proof;
|
||||
- 范围比 tool-change、five-axis、完整 remap family 更窄;
|
||||
- 已有 source/runtime readiness artifacts;
|
||||
- 可先证明 Python path、toplevel、module import、callable lookup、generator lifecycle、
|
||||
remap phase dispatch 等生命周期边界。
|
||||
|
||||
当前 fixture modules:
|
||||
|
||||
```text
|
||||
axis/remap/stop-lookahead/python/remap.py
|
||||
axis/remap/stop-lookahead/python/toplevel.py
|
||||
```
|
||||
|
||||
当前 runtime phases:
|
||||
|
||||
```text
|
||||
initialize_python
|
||||
apply_ini_python_path
|
||||
execute_toplevel
|
||||
callable_lookup
|
||||
pycall_dispatch
|
||||
callable_invoke
|
||||
remap_phase_dispatch
|
||||
generator_finish
|
||||
execute_python_runtime
|
||||
reload_on_change
|
||||
```
|
||||
|
||||
三、当前 native probe 状态
|
||||
|
||||
默认 probe:
|
||||
|
||||
```bash
|
||||
wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
python_remap_runtime_fixture_family=axis/remap/stop-lookahead/nc_files
|
||||
python_remap_runtime_fixture_id=stop_lookahead_python_runtime_lifecycle
|
||||
python_remap_runtime_requirements=python3:1,linuxcnc:1
|
||||
python_remap_missing_requirements=-
|
||||
python_remap_source_proof_ready=1
|
||||
python_remap_runtime_ready=1
|
||||
python_remap_execution_enabled=0
|
||||
python_remap_promotion_allowed=0
|
||||
python_remap_runtime_probe_status=ready_disabled_by_default
|
||||
```
|
||||
|
||||
显式 opt-in native lifecycle probe:
|
||||
|
||||
```bash
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
python_remap_lifecycle_execute_finish_source_value=2
|
||||
python_remap_lifecycle_ini_path_prepend=python
|
||||
python_remap_lifecycle_ini_toplevel=python/toplevel.py
|
||||
python_remap_lifecycle_interpreter_sentinel_ok=1
|
||||
python_remap_lifecycle_toplevel_imported=1
|
||||
python_remap_lifecycle_remap_imported=1
|
||||
python_remap_lifecycle_callable_lookup_ok=1
|
||||
python_remap_lifecycle_generator_returned=1
|
||||
python_remap_lifecycle_generator_first_yield=2
|
||||
python_remap_lifecycle_generator_finish_ok=1
|
||||
python_remap_runtime_lifecycle_probe_ok=1
|
||||
python_remap_runtime_probe_status=runtime_lifecycle_probe_passed
|
||||
```
|
||||
|
||||
结论:
|
||||
|
||||
```text
|
||||
L4-PYTHON-REMAP 已不是“从零设计”。
|
||||
native stop-lookahead lifecycle proof 已能通过;
|
||||
下一步是把这个 native pass evidence 接入 WASM/Worker proof、browser diagnostics、
|
||||
release artifact 和 promotion lock 后置 gate。
|
||||
```
|
||||
|
||||
四、目标
|
||||
|
||||
本 milestone 的目标不是直接让 53 个 `L4-PYTHON-REMAP` rows 全部 PASS。
|
||||
|
||||
目标是证明:
|
||||
|
||||
```text
|
||||
LinuxCNC-owned Python remap lifecycle + configured Python modules +
|
||||
interpreter state binding 可以在 native / WASM / browser proof chain 中成立。
|
||||
```
|
||||
|
||||
第一目标 fixture:
|
||||
|
||||
```text
|
||||
axis/remap/stop-lookahead/nc_files
|
||||
ini=axis/remap/stop-lookahead/demo.ini
|
||||
blocked=L4-PYTHON-REMAP
|
||||
modules=python/remap.py,python/toplevel.py
|
||||
```
|
||||
|
||||
必须证明:
|
||||
|
||||
- INI `[PYTHON]PATH_PREPEND=python` 被执行;
|
||||
- INI `[PYTHON]TOPLEVEL=python/toplevel.py` 被执行;
|
||||
- configured Python module 可 import;
|
||||
- callable lookup 来自 LinuxCNC Python remap lifecycle;
|
||||
- generator remap lifecycle 可开始、yield、finish;
|
||||
- interpreter sentinel / state binding 可观测;
|
||||
- diagnostics 明确 `promotion_allowed=0`,直到完整 native + WASM + browser + manual lock review 完成。
|
||||
|
||||
五、Phase 1:把 native lifecycle pass evidence 接入 artifacts
|
||||
|
||||
当前 native opt-in probe 已通过,但 generated artifact 里仍有历史状态:
|
||||
|
||||
```text
|
||||
python-remap-native-runtime-probe-gate.tsv
|
||||
gate_status=ready_to_implement_lifecycle_probe
|
||||
proof_status=pending
|
||||
promotion_allowed=0
|
||||
```
|
||||
|
||||
下一批应先做:
|
||||
|
||||
1. 让 inventory/report layer 可读取 native probe stdout:
|
||||
|
||||
```text
|
||||
wasm-port/build/native/python-remap-runtime/python_lifecycle.stdout.log
|
||||
```
|
||||
|
||||
2. 生成 native pass evidence contract:
|
||||
|
||||
```text
|
||||
python_remap_runtime_probe_status=runtime_lifecycle_probe_passed
|
||||
python_remap_lifecycle_toplevel_imported=1
|
||||
python_remap_lifecycle_remap_imported=1
|
||||
python_remap_lifecycle_callable_lookup_ok=1
|
||||
python_remap_lifecycle_generator_finish_ok=1
|
||||
python_remap_runtime_lifecycle_probe_ok=1
|
||||
```
|
||||
|
||||
3. 更新/新增 machine-readable artifacts:
|
||||
|
||||
```text
|
||||
python-remap-native-runtime-probe-gate.tsv
|
||||
runtime-boundary-native-evidence-acceptance-gate.tsv
|
||||
runtime-boundary-post-native-pass-gates.tsv
|
||||
native-runtime-probe-pass-evidence-contract.tsv
|
||||
runtime-probe-gate-alignment.tsv
|
||||
```
|
||||
|
||||
4. 仍保持:
|
||||
|
||||
```text
|
||||
execution_enabled=0
|
||||
promotion_allowed=0
|
||||
manual_lock_update_required=1
|
||||
```
|
||||
|
||||
验收命令:
|
||||
|
||||
```bash
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||||
```
|
||||
|
||||
六、Phase 2:定义 PythonRemapRuntimePort
|
||||
|
||||
建议新增:
|
||||
|
||||
```text
|
||||
wasm-port/runtime/sdk/src/python-remap-runtime-port.js
|
||||
wasm-port/runtime/sdk/src/python-remap-browser-worker-adapter.js
|
||||
wasm-port/runtime/workers/python-remap-worker.js
|
||||
wasm-port/tests/sdk/node/verify_python_remap_runtime_port.mjs
|
||||
wasm-port/tests/wasm/node/verify_python_remap_runtime_port_wasm.mjs
|
||||
wasm-port/tests/browser/verify_python_remap_runtime_browser.sh
|
||||
wasm-port/tests/browser/python_remap_runtime_browser_smoke.html
|
||||
```
|
||||
|
||||
建议 API:
|
||||
|
||||
```text
|
||||
createLinuxCncPythonRemapRuntimePort({
|
||||
fixtureFamily,
|
||||
iniPath,
|
||||
pythonPathPrepend,
|
||||
topLevelPath,
|
||||
sourceFiles,
|
||||
runtimeMode,
|
||||
runtimeAdapter,
|
||||
})
|
||||
|
||||
start()
|
||||
applyIniPythonPath()
|
||||
executeTopLevel()
|
||||
importModule(modulePath)
|
||||
lookupCallable(callableName)
|
||||
invokeGenerator(callableName, args)
|
||||
runLifecyclePlan(plan)
|
||||
exportTranscript()
|
||||
exportDiagnostics()
|
||||
close()
|
||||
```
|
||||
|
||||
最小 lifecycle plan:
|
||||
|
||||
```text
|
||||
1. initialize_python
|
||||
2. apply_ini_python_path
|
||||
3. execute_toplevel
|
||||
4. import python/remap.py
|
||||
5. lookup configured callable
|
||||
6. invoke generator
|
||||
7. observe first yield
|
||||
8. finish generator
|
||||
9. export interpreter sentinel/state
|
||||
10. export diagnostics
|
||||
```
|
||||
|
||||
必须保持:
|
||||
|
||||
```text
|
||||
executionEnabled=false
|
||||
promotionAllowed=false
|
||||
bulkPromotionAllowed=false
|
||||
```
|
||||
|
||||
不允许:
|
||||
|
||||
- JS 直接实现 remap callable 结果;
|
||||
- JS 构造 interpreter state 假装 Python remap pass;
|
||||
- 只用 fixture transcript 假装 runtime pass;
|
||||
- 跳过 `toplevel.py`;
|
||||
- 跳过 configured Python module import;
|
||||
- 把 Python module import success 当作 full remap lifecycle success。
|
||||
|
||||
七、Phase 3:WASM/Worker runtime
|
||||
|
||||
推荐复用 Tool DB milestone 的 runtime pattern:
|
||||
|
||||
```text
|
||||
Browser/Node worker + Python/WASM provider + LinuxCNC-specific lifecycle shim
|
||||
```
|
||||
|
||||
Worker 职责:
|
||||
|
||||
- 加载 Python runtime provider;
|
||||
- 设置 INI 声明的 Python path;
|
||||
- 执行 `python/toplevel.py`;
|
||||
- import `python/remap.py`;
|
||||
- 通过受控 adapter 调用 lifecycle fixture;
|
||||
- 记录 transcript;
|
||||
- 导出 diagnostics。
|
||||
|
||||
允许的 shim:
|
||||
|
||||
```text
|
||||
minimal LinuxCNC Python remap integration shim
|
||||
```
|
||||
|
||||
shim 只能覆盖 stop-lookahead fixture 必需的 integration surface,例如:
|
||||
|
||||
- interpreter sentinel;
|
||||
- callable lookup bridge;
|
||||
- generator invocation bridge;
|
||||
- remap phase observations;
|
||||
- diagnostics state capture。
|
||||
|
||||
shim 不允许承载:
|
||||
|
||||
- generic interpreter semantics;
|
||||
- G-code parsing;
|
||||
- planner / canonical motion;
|
||||
- full tool-change semantics;
|
||||
- arbitrary Python UI process;
|
||||
- arbitrary external process。
|
||||
|
||||
八、Phase 4:browser diagnostics proof
|
||||
|
||||
新增 browser diagnostics 字段建议:
|
||||
|
||||
```text
|
||||
python_remap_runtime_mode=browser-python-wasm-worker
|
||||
fixture_family=axis/remap/stop-lookahead/nc_files
|
||||
ini_path=axis/remap/stop-lookahead/demo.ini
|
||||
python_path_prepend=python
|
||||
toplevel=python/toplevel.py
|
||||
modules=python/remap.py,python/toplevel.py
|
||||
lifecycle_transcript_ready=true
|
||||
callable_lookup_ready=true
|
||||
generator_lifecycle_ready=true
|
||||
interpreter_state_binding_ready=true
|
||||
ngc_only_subroutine_promoted=false
|
||||
bulk_family_promotion_allowed=false
|
||||
promotion_allowed=0
|
||||
```
|
||||
|
||||
browser gate 必须证明:
|
||||
|
||||
- 页面/API 可读取 Python remap lifecycle diagnostics;
|
||||
- diagnostics 来源绑定 LinuxCNC config/source;
|
||||
- diagnostics 明确不是 JS-owned CNC semantics;
|
||||
- saved artifact 可进入 release URL / ini-panel workflow;
|
||||
- `L4-PYTHON-REMAP` 仍在 manual promotion lock 下。
|
||||
|
||||
建议命令:
|
||||
|
||||
```bash
|
||||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_python_remap_runtime_browser.sh
|
||||
```
|
||||
|
||||
九、Phase 5:release artifact / promotion lock
|
||||
|
||||
在 native + WASM + browser proof 全部通过前,release artifact 只能显示:
|
||||
|
||||
```text
|
||||
L4-PYTHON-REMAP locked
|
||||
python_remap_native_lifecycle_ready=<0|1>
|
||||
python_remap_wasm_lifecycle_ready=<0|1>
|
||||
python_remap_browser_lifecycle_ready=<0|1>
|
||||
promotion_allowed=0
|
||||
```
|
||||
|
||||
三层 proof 都 ready 后,仍不能自动批量解锁 53 rows。
|
||||
|
||||
下一步只能考虑单独 review:
|
||||
|
||||
```text
|
||||
axis/remap/stop-lookahead/nc_files: SKIP L4-PYTHON-REMAP -> PASS
|
||||
```
|
||||
|
||||
并且必须证明:
|
||||
|
||||
- 对应 row 不是 NGC-only subroutine;
|
||||
- 对应 INI / Python modules / remap declarations 都已 vendored;
|
||||
- native pass 与 WASM/browser lifecycle proof 对齐;
|
||||
- Python runtime 没有绕过 LinuxCNC interpreter lifecycle;
|
||||
- `promotion_allowed` 的变更是显式人工 review,不是 gate 自动推断。
|
||||
|
||||
十、L4-USER-M-PROCESS 暂缓原则
|
||||
|
||||
`L4-USER-M-PROCESS` 当前代表 row:
|
||||
|
||||
```text
|
||||
axis/vismach/millturn/example.ngc
|
||||
```
|
||||
|
||||
核心阻塞:
|
||||
|
||||
```text
|
||||
M128 / M129 Tcl scripts
|
||||
HAL pin state updates
|
||||
kinstype guard
|
||||
ini.[xyz].* soft-limit state transitions
|
||||
```
|
||||
|
||||
暂缓原因:
|
||||
|
||||
- 浏览器不能支持 arbitrary executable spawn;
|
||||
- 浏览器不能通用执行 native Tcl process;
|
||||
- 不能模拟 host HAL daemon unrestricted side effects;
|
||||
- 成功只覆盖 1 个 row;
|
||||
- 更适合在 Python remap lifecycle / runtime diagnostics pattern 稳定后,做受控 state-transition proof。
|
||||
|
||||
后续做法只允许:
|
||||
|
||||
```text
|
||||
LinuxCNC-owned user-M state transition boundary
|
||||
```
|
||||
|
||||
不允许:
|
||||
|
||||
```text
|
||||
browser arbitrary external process execution
|
||||
```
|
||||
|
||||
十一、下一批最小执行建议
|
||||
|
||||
优先做一批小而可验收的改动:
|
||||
|
||||
1. 固化 native Python remap lifecycle pass evidence。
|
||||
|
||||
```bash
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
```
|
||||
|
||||
2. 让 generated inventory / release artifact 能识别:
|
||||
|
||||
```text
|
||||
python_remap_runtime_probe_status=runtime_lifecycle_probe_passed
|
||||
```
|
||||
|
||||
3. 新增 `PythonRemapRuntimePort` contract-only SDK 层。
|
||||
|
||||
4. 新增 Node contract test:
|
||||
|
||||
```text
|
||||
wasm-port/tests/sdk/node/verify_python_remap_runtime_port.mjs
|
||||
```
|
||||
|
||||
5. 暂不改 baseline,不改 53 rows。
|
||||
|
||||
首批验收命令:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.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
|
||||
```
|
||||
|
||||
十二、结论
|
||||
|
||||
当前状态可以概括为:
|
||||
|
||||
```text
|
||||
virtual HAL 已接入 Web 仿真;
|
||||
L4-TOOL-DB proof chain 已成立;
|
||||
当前 generated inventory 为 PASS=29 / SKIP=130 / FAIL=0;
|
||||
剩余主要 hard block 是 L4-PYTHON-REMAP=53 和 L4-USER-M-PROCESS=1;
|
||||
下一步先做 L4-PYTHON-REMAP;
|
||||
首个 fixture 是 axis/remap/stop-lookahead/nc_files;
|
||||
native opt-in lifecycle probe 已通过;
|
||||
下一批应把 native pass evidence 接入 artifacts,并建立 PythonRemapRuntimePort
|
||||
的 WASM/browser proof chain;
|
||||
promotion_allowed 继续保持 0,直到完整 proof + manual lock review。
|
||||
```
|
||||
|
||||
十三、2026-06-19 接续执行记录:L4-PYTHON-REMAP 仿真系统接入收尾
|
||||
|
||||
本轮结论:
|
||||
|
||||
```text
|
||||
L4-PYTHON-REMAP 的 native / SDK / WASM / browser proof chain 已接入;
|
||||
真实数控仿真页 runtime/ui/simulation 现在也暴露 Python remap runtime 状态;
|
||||
release artifact / URL workflow 能识别 python-remap-runtime-proof=ready;
|
||||
53 个 L4-PYTHON-REMAP inventory rows 仍保持 SKIP/manual promotion lock,
|
||||
不做批量 PASS,不启用 execution,不允许 promotion_allowed。
|
||||
```
|
||||
|
||||
新增/补齐的仿真接入点:
|
||||
|
||||
```text
|
||||
wasm-port/runtime/ui/simulation/simulation-app.js
|
||||
- createPythonRemapSimulationRuntimeStatus()
|
||||
- renderPythonRemapRuntimeStatus()
|
||||
- runRealBrowserSimulation() state.pythonRemapRuntime
|
||||
|
||||
wasm-port/runtime/ui/simulation/index.html
|
||||
- Machine State 面板显示 L4-PYTHON-REMAP fixture/runtime/lifecycle/promotion 状态
|
||||
- window.linuxCncRealSimulationApi.getPythonRemapRuntimeStatus()
|
||||
- exportDiagnosticsArtifact().pythonRemapRuntime
|
||||
|
||||
wasm-port/tests/browser/real_simulation_page_smoke.html
|
||||
- 验证 DOM / API / diagnostics artifact 的 Python remap runtime 状态
|
||||
```
|
||||
|
||||
本轮验证:
|
||||
|
||||
```bash
|
||||
wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
wasm-port/tests/sdk/node/verify_python_remap_runtime_port.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_python_remap_runtime_port_wasm.sh
|
||||
wasm-port/tests/browser/verify_python_remap_runtime_browser.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||||
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
|
||||
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||||
git diff --check
|
||||
```
|
||||
|
||||
关键验证结果:
|
||||
|
||||
```text
|
||||
python_remap_runtime_probe_status=ready_disabled_by_default
|
||||
python_remap_runtime_probe_status=runtime_lifecycle_probe_passed
|
||||
python_remap_runtime_lifecycle_probe_ok=1
|
||||
python_remap_lifecycle_generator_first_yield=2
|
||||
python_remap_execution_enabled=0
|
||||
python_remap_promotion_allowed=0
|
||||
browser_python_remap_runtime_smoke=ok
|
||||
browser_real_simulation_page_smoke=ok
|
||||
browser_release_artifact_url_workflow_smoke=ok
|
||||
sim_configs_wasm_node_inventory_executed=29
|
||||
sim_configs_wasm_node_inventory_passed=29
|
||||
sim_configs_wasm_node_inventory_skipped=130
|
||||
sim_configs_wasm_node_inventory_skip_L4_PYTHON_REMAP=53
|
||||
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||||
standalone CNC semantics guard complete
|
||||
```
|
||||
|
||||
仍保持的边界:
|
||||
|
||||
```text
|
||||
executionEnabled=false
|
||||
promotionAllowed=false
|
||||
bulkPromotionAllowed=false
|
||||
ngcOnlySubroutinePromoted=false
|
||||
jsCncSemantics=false
|
||||
```
|
||||
Reference in New Issue
Block a user