26 KiB
05-验收证据
本文件记录可复验证据。所有命令必须写明工作目录、命令、关键输出、结论。截图、PDF、页面、job_id、report_id、日志文件路径也应记录在对应任务下。
证据等级
| 等级 | 证据类型 | 用途 |
|---|---|---|
| P0 | LinuxCNC 上游源码、上游测试、nc_files、configs/sim |
定义真实行为 |
| P1 | vendored 字节同步、source manifest、source reuse map | 证明行为来源 |
| P2 | Native probe 或 native rs274 输出对比 | 证明脱离浏览器后与 LinuxCNC 一致 |
| P3 | WASM Node 测试 | 证明 WASM 编译后语义未漂移 |
| P4 | 真实浏览器测试 | 证明 OPFS、Worker、UI、C ABI 集成后仍一致 |
| P5 | 截图、录屏、人工 UI 检查 | 只能补充,不单独证明核心语义 |
记录模板
## YYYY-MM-DD HH:MM 时区 ACC-XXX 标题
### 验收对象
### 证据等级
### 命令或证据路径
### 实际输出摘要
### 结论
### 后续处理
2026-07-10 03:13 EDT ACC-023 继续复验与 User-M 审计修复证据
验收对象
ACC-001 到 ACC-023 的继续复验,重点覆盖 configs/sim WASM inventory、User-M 外部进程边界审计、真实浏览器和 host 聚合验收。
证据等级
P1-P5 综合证据:vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项边界 proof。
命令或证据路径
工作目录:
cd /home/mes123456/cnc_wams/wasm-port
本轮实际执行命令:
./tools/verify_upstream_baseline.sh && ./tools/verify_vendor_sync.sh && ./tools/verify_no_standalone_cnc_semantics.sh && ./tests/native/verify_native_probes.sh && ./tests/native/verify_nc_files.sh && ./tests/native/verify_sim_configs.sh && ./tests/wasm/node/verify_ini_wasm.sh && ./tests/wasm/node/verify_interp_wasm.sh && ./tests/wasm/node/verify_sim_configs_wasm.sh && ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh && ./tests/wasm/node/verify_nc_files_wasm.sh && ./tests/wasm/node/verify_tp_wasm.sh && ./tests/opfs/node/verify_file_service.sh && ./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh && ./tests/browser/verify_interp_browser.sh && ./tests/host/verify_host_smokes.sh && ./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh && ./tests/sdk/node/verify_python_remap_runtime_port.sh && ./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh && ./tests/browser/verify_python_remap_runtime_browser.sh
失败修复证据:
首次失败: AssertionError: axis/vismach/millturn/example.ngc: user-M Node proof status drift
修复文件: wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs
修复后单测: ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh 通过
生成审计文件:
build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv
axis/vismach/millturn/example.ngc ... ready_disabled_by_default:native=0:node=0:browser=0 ... not_promotable_runtime_proof_incomplete
实际输出摘要
upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation up to date
nc_files harness summary: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim config harness summary: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_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_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
opfs_file_service_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_interp_smoke=ok
browser_real_simulation_page_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
tool_db_node_runtime_adapter=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok
结论
本轮复验通过。User-M 外部进程边界审计已按当前 host opt-in 状态正确记录,未把 ready_disabled_by_default 误判为 Node/browser proof 缺失导致的测试失败;所有必跑命令和专项补充命令均通过,unexpected_fail=0。
后续处理
继续保持 Python remap、User M 外部进程、硬件驱动、实时内核等条件边界。millturn User-M 如需晋级,必须先通过显式 opt-in native runtime probe 并补齐后续 promotion gate。
2026-07-09 21:01 EDT ACC-001 到 ACC-023 复验证据
验收对象
/home/mes123456/cnc_wams/完善wasm/working 总体验收矩阵 ACC-001 到 ACC-023 的完成后复验。
证据等级
P1-P5 综合复验证据:vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项补充验证。
命令或证据路径
工作目录:
cd /home/mes123456/cnc_wams/wasm-port
本轮实际执行命令:
./tools/verify_upstream_baseline.sh && ./tools/verify_vendor_sync.sh && ./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh && ./tests/native/verify_nc_files.sh && ./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh && ./tests/wasm/node/verify_interp_wasm.sh && ./tests/wasm/node/verify_sim_configs_wasm.sh && ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh && ./tests/wasm/node/verify_nc_files_wasm.sh && ./tests/wasm/node/verify_tp_wasm.sh && ./tests/opfs/node/verify_file_service.sh && ./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh && ./tests/browser/verify_interp_browser.sh && ./tests/host/verify_host_smokes.sh
./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh && ./tests/sdk/node/verify_python_remap_runtime_port.sh && ./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh && ./tests/browser/verify_python_remap_runtime_browser.sh
实际输出摘要
upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation up to date
nc_files harness summary: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim config harness summary: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_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_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
opfs_file_service_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_interp_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
tool_db_node_runtime_adapter=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok
verify_sim_configs_inventory_wasm.sh 仍输出 4 行 /work/sim-inventory/axis/db_demo/base.inc: Cannot open ini-file 诊断;命令以 0 退出,最终 inventory 计数稳定为 29/29/130/0。
结论
本轮复验通过。发布前必跑命令和专项补充命令均通过,unexpected_fail=0;ACC-001 到 ACC-023 的完成/条件通过结论仍成立。
后续处理
保持 Python remap、User M 外部进程、硬件驱动、实时内核等条件边界,不把这些项宣称为无条件 full-process 支持。
必跑命令清单
发布前至少需要补齐以下命令证据:
cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_upstream_baseline.sh
./tools/verify_vendor_sync.sh
./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh
./tests/native/verify_nc_files.sh
./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh
./tests/wasm/node/verify_interp_wasm.sh
./tests/wasm/node/verify_sim_configs_wasm.sh
./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
./tests/wasm/node/verify_nc_files_wasm.sh
./tests/wasm/node/verify_tp_wasm.sh
./tests/opfs/node/verify_file_service.sh
./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh
./tests/browser/verify_interp_browser.sh
./tests/host/verify_host_smokes.sh
2026-07-09 20:24 EDT ACC-001 到 ACC-023 完整验收证据
验收对象
/home/mes123456/cnc_wams/完善wasm/working 总体验收矩阵 ACC-001 到 ACC-023。
证据等级
P0-P5 综合证据:LinuxCNC 上游基线、vendor 同步、Native probe、WASM Node、真实浏览器、OPFS/UI/Host 聚合。
命令或证据路径
工作目录:
cd /home/mes123456/cnc_wams/wasm-port
关键命令:
./tools/verify_upstream_baseline.sh
./tools/verify_vendor_sync.sh
./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh
./tests/native/verify_nc_files.sh
./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh
./tests/wasm/node/verify_interp_wasm.sh
./tests/wasm/node/verify_sim_configs_wasm.sh
./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
./tests/wasm/node/verify_nc_files_wasm.sh
./tests/wasm/node/verify_tp_wasm.sh
./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh
./tests/opfs/node/verify_file_service.sh
./tests/sdk/node/verify_python_remap_runtime_port.sh
./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh
./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh
./tests/browser/verify_interp_browser.sh
./tests/browser/verify_python_remap_runtime_browser.sh
./tests/host/verify_host_smokes.sh
实际输出摘要
upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation complete
nc_files: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim_configs native: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_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_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
opfs_file_service_node_smoke=ok
sdk_python_remap_runtime_port_sh=ok
tool_db_node_runtime_adapter=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_real_simulation_page_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
browser_interp_smoke=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok
host_wasm_opfs_browser_smokes=ok
verify_sim_configs_inventory_wasm.sh 仍输出 4 行 /work/sim-inventory/axis/db_demo/base.inc: Cannot open ini-file 诊断,但命令以 0 退出,最终 inventory 计数稳定为 29/29/130/0。
结论
必跑命令和专项补充命令通过。ACC-001 到 ACC-023 可按当前证据闭合;Python remap、User M 外部进程、硬件驱动和实时内核仍是明确的条件通过或 Blocked 边界。
后续处理
后续解除条件边界时,必须新增任务和证据,不得直接把当前条件通过项改写为无条件 full-process 支持。
2026-07-09 初始文档创建证据
验收对象
/home/mes123456/cnc_wams/完善wasm/working 初始推进文档集。
证据等级
P5 文档结构证据。本轮不作为 LinuxCNC 核心语义通过证据。
命令或证据路径
目标文件:
/home/mes123456/cnc_wams/完善wasm/working/README.md/home/mes123456/cnc_wams/完善wasm/working/01-项目功能内容.md/home/mes123456/cnc_wams/完善wasm/working/02-项目程序开发详细步骤.md/home/mes123456/cnc_wams/完善wasm/working/03-推进台账.md/home/mes123456/cnc_wams/完善wasm/working/04-任务矩阵.md/home/mes123456/cnc_wams/完善wasm/working/05-验收证据.md/home/mes123456/cnc_wams/完善wasm/working/06-决策记录.md
实际输出摘要
文档已创建,任务矩阵已初始化为 ACC-001 到 ACC-023。
结论
文档体系创建完成,但 wasm-port 的 LinuxCNC 对标状态仍需从 ACC-001 开始用真实命令补证据。
后续处理
执行基线和同步命令,并将输出追加到本文件。
2026-07-09 21:55 EDT release gate 稳定性复验
本轮目标
按 03完全对标LinuxCNC的可执行验收标准.txt 收口 wasm-port 发布前 gate,解决真实执行中暴露的 browser 截图挂起、cwd 路径漂移、Python remap proof 与 inventory/manual lock 串状态、release readiness artifact 校验漂移问题。
修复摘要
verify_real_simulation_axis_screenshot_browser.sh:为 headless Chrome DOM/screenshot 调用增加 timeout、独立临时 profile 和 stderr 诊断,避免截图 smoke 无限挂起。verify_tool_db_process_port_wasm.mjs:改为基于测试文件位置解析wasm-port根目录,避免 release gate 从仓库根执行时读错vendor路径。verify_project_release_gate.sh:补入 Python remap SDK/WASM/browser proof 与 native opt-in lifecycle probe,并保证 opt-in native probe 只在 locked proof 后、生成 readiness artifact 前执行。verify_native_probes.sh:validation cache 指纹加入 opt-in 环境变量,避免 default 与 opt-in native runtime summary 串状态。verify_sim_configs_inventory_wasm.mjs:Python remap row proof 默认只作为证据,不提升 inventory;只有显式ENABLE_PYTHON_REMAP_INVENTORY_PROMOTION=1才允许 promotion。- Python remap WASM/browser proof:改为幂等校验,允许已有 proof artifact 重复运行,同时继续要求
execution_enabled=0和manual_promotion_lock。 verify_python_remap_runtime_browser.sh:cleanup 对 Chrome profile 删除竞态增加重试。verify_project_release_readiness_artifact.mjs:同步当前 sim-config inventory artifact hash、promotion candidate 行数和 29/29/130/0 baseline。
最终验证输出摘要
git diff --check: ok
verify_upstream_baseline.sh: upstream baseline validation complete
verify_vendor_sync.sh: vendor sync up to date
verify_no_standalone_cnc_semantics.sh: standalone CNC semantics guard complete
verify_sim_configs_inventory_wasm.sh: executed=29 passed=29 skipped=130 unexpected_fail=0
verify_host_smokes.sh: host_wasm_opfs_browser_smokes=ok
verify_project_release_gate.sh: project_release_gate=ok
verify_project_release_readiness_artifact.sh: project_release_readiness_artifact_node_smoke=ok
结论
发布 gate 已可从头到尾收口。unexpected_fail=0,Python remap row proof 可重复运行但仍保持 manual_promotion_lock,不会把 Python remap 行误提升为无条件 inventory 通过。Python remap、User M 外部进程、硬件驱动、实时内核仍按文档保持条件通过或 Blocked 边界。
2026-07-09 22:46 EDT 后续边界功能推进证据
本轮目标
继续完成 release gate 之后的运行时边界后续功能:将 Tool DB 原生 DB_PROGRAM v2.1 协议探针纳入发布门禁和 release readiness artifact;保留 User M 外部进程为明确 native blocker;保持 sim-config inventory 不被自动提升。
修复摘要
tests/native/verify_sim_configs.sh:把axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc的 HAL named-parameter 运行态依赖和axis/vismach/millturn/example.ngc的外部 M129 进程依赖归入 expected runtime boundary,原生 sim-config 前置恢复为unexpected_fail=0。tests/native/probe_millturn_user_m_runtime.sh:User M runtime probe 改用 LinuxCNC 配置实际连接的motion.analog-out-03切换 kinematics,并增强 cleanup,避免失败路径遗留linuxcncsvr/RT 会话。tests/native/verify_native_probes.sh:允许 User M opt-in runtime probe 以runtime_state_probe_failed作为明确 blocker 证据通过校验;Tool DB/Python Remap 仍要求通过状态。runtime/sdk/src/project-release-readiness.js与 readiness 写入/校验测试:Tool DB proof 现在要求nativeProtocolReady=true,summary detail 显示native=ready。tests/host/verify_project_release_gate.sh:发布门禁中的 native probe 阶段改为启用ENABLE_TOOL_DB_RUNTIME_PROBE=1和ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1,不启用 User M promotion。
最终验证输出摘要
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 ENABLE_TOOL_DB_RUNTIME_PROBE=1 ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 ./tests/native/verify_native_probes.sh
native probe validation complete
./tests/ui/node/verify_ui_node_smokes.sh
ui_node_smokes=ok
./tests/host/verify_project_release_gate.sh
project_release_gate=ok
SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
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_unexpected_fail=0
git diff --check: ok
关键产物状态
wasm-port/build/native/native-runtime-probe-summary.tsv:
L4-USER-M-PROCESS:ready_disabled_by_default,仍需显式ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1且当前不允许 promotion。L4-TOOL-DB:runtime_protocol_probe_passed,promotion_allowed=0。L4-PYTHON-REMAP:runtime_lifecycle_probe_passed,promotion_allowed=0。
wasm-port/build/project-release-readiness.json:
ready=truetoolDbProcessProofSummary.nativeProtocolReady=truepythonRemapRuntimeProofSummary.nativeLifecycleReady=true
结论
Tool DB 后续运行时边界已从设计/浏览器 proof 提升为 release gate 内的原生 DB_PROGRAM 协议 proof;Python Remap 原生 lifecycle proof 保持在 gate 内;User M 外部进程仍作为明确 native blocker,不自动启用执行或 promotion。sim-config inventory 仍稳定为 29/29/130/0。
2026-07-10 00:01 EDT 后续 Tool DB 晋级门禁闭合证据
本轮目标
继续完成后续功能:解决普通 sim-config inventory 重跑会覆盖 Tool DB opt-in native runtime proof 的问题,并把已有 Tool DB SDK/WASM/OPFS/Browser 证明链反映到 runtime boundary promotion readiness 中,但继续保持默认禁用、promotion_allowed=0 和人工晋级锁。
修复摘要
tests/wasm/node/verify_sim_configs_inventory_wasm.sh:增加 Tool DB native stdout 证明保留逻辑。普通 inventory 刷新 native probes 时,如果已观察到tool_db_runtime_probe_status=runtime_protocol_probe_passed、tool_db_protocol_version=v2.1、put/load/unload/persistence 状态均 OK,则自动带上ENABLE_TOOL_DB_RUNTIME_PROBE=1重新生成 native summary,避免把 Tool DB pass 证据回退成ready_disabled_by_default。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:允许 Tool DB runtime probe gate 在 native protocol probe 已通过后记录native_protocol_probe_passed_waiting_for_node_browser_proof,并保留python3_and_tool_table_fallback_not_sufficient说明,防止把 Python/tbl fallback 误当作 LinuxCNC DB_PROGRAM v2.1 协议证明。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:同步 runtime probe gate/native summary 对齐规则,允许 native summary 的runtime_protocol_probe_passed与 gate 的native_protocol_probe_passed...状态兼容。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:新增共享判定,把L4-TOOL-DB在native_pass_ready=1且native_evidence_ready=1时视为 Node/Browser proof chain complete;promotion_ready、execution_enabled、promotion_allowed仍全部保持0,阻断原因转为promotion_lock_active_manual_review_required。
最终验证输出摘要
SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
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_unexpected_fail=0
sim_configs_wasm_node_inventory=ok
./tests/host/verify_project_release_gate.sh
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
project_release_readiness_artifact_node_smoke=ok
project_release_gate=ok
git diff --check: ok
关键产物状态
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-readiness.tsv:
L4-TOOL-DB:current_probe_status=runtime_protocol_probe_passednative_pass_ready=1native_evidence_ready=1node_inventory_gate_complete=1browser_smoke_gate_complete=1promotion_lock_active=1manual_lock_update_required=1promotion_ready=0execution_enabled=0promotion_allowed=0blocking_reason=promotion_lock_active_manual_review_required
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv:
L4-TOOL-DB: blocker 只剩promotion_lock_active,manual_lock_update_required。
结论
Tool DB 后续 proof chain 已闭合到 runtime boundary readiness:Native DB_PROGRAM v2.1 协议、Node/WASM、OPFS 和 Browser proof 均被 release gate 验收并反映到晋级门禁;普通 inventory 重跑不会再丢失 Tool DB native pass 证据。当前仍不自动 promotion,必须人工复核并更新 promotion lock 后才能进一步放开。
2026-07-10 00:39 EDT 后续 User M 与全边界人工锁收口证据
本轮目标
继续完成剩余后续功能:把 axis/vismach/millturn/example.ngc 的 User M M128/M129 LinuxCNC-owned runtime state proof 做到 native pass,并让三类运行时边界的 readiness/recommendation 都从“实现 probe”推进到“proof chain 完成,等待人工 promotion lock 复核”。
修复摘要
tests/native/probe_millturn_user_m_runtime.sh:改为生成临时 headless LinuxCNC INI 和 display 测试脚本,过滤millturn_cmds.hal中 headless 会阻塞的hal_manualtoolchangeTk 组件,保留 LinuxCNC task/HAL runtime。- User M probe 在 headless LinuxCNC 中先 reset/on、home 4 个 joints,再用 MDI
M68 E3 Q0/Q1切换 kinstype,并以明确INI_FILE_NAME=<headless.ini>调用 vendoredM128/M129Tcl 脚本,验证kinstype.is-*、ini.[xyz].min_limit/max_limit和ini.[xyz].max_acceleration。 - User M probe 增加 stale
/tmp/linuxcnc.lock清理和timeout --foreground,避免 LinuxCNC wrapper 的 Tk 错误窗口阻塞 CI。 tests/wasm/node/verify_sim_configs_inventory_wasm.sh:普通 inventory native probe 刷新会保留 User Mruntime_state_probe_passedstdout 证明,和 Tool DB/Python 一样不回退为 disabled。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:User M 在 native pass/evidence ready 后消费已有 SDK/UI/browser virtual HAL 状态边界 proof,Node/Browser gate 标记完成;三类边界都保持promotion_ready=0、execution_enabled=0、promotion_allowed=0。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:remaining skipped-main audit 区分not_promotable_runtime_proof_incomplete与not_promotable_manual_promotion_lock_active。tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:next-boundary-recommendations.tsv根据 readiness 输出manual_promotion_lock_review,不再推荐已完成的 native probe。tests/host/verify_project_release_gate.sh:native opt-in 阶段加入ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1,并在 native probes 后重刷 sim-config inventory,再写 release readiness artifact。
最终验证输出摘要
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 tests/native/probe_millturn_user_m_runtime.sh
millturn_user_m_M128_runtime_state_ok=1
millturn_user_m_M129_runtime_state_ok=1
millturn_user_m_runtime_probe_status=runtime_state_probe_passed
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 ENABLE_TOOL_DB_RUNTIME_PROBE=1 ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 ./tests/native/verify_native_probes.sh
native probe validation complete
SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
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_unexpected_fail=0
sim_configs_wasm_node_inventory=ok
./tests/host/verify_project_release_gate.sh
project_release_readiness_artifact_node_smoke=ok
project_release_gate=ok
git diff --check: ok
关键产物状态
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-readiness.tsv:
L4-USER-M-PROCESS:runtime_state_probe_passed,native/node/browser proof gate 全部为1,只剩promotion_lock_active=1与manual_lock_update_required=1。L4-TOOL-DB:runtime_protocol_probe_passed,native/node/browser proof gate 全部为1,只剩人工锁。L4-PYTHON-REMAP:runtime_lifecycle_probe_passed,native/node/browser proof gate 全部为1,只剩人工锁。
wasm-port/build/wasm/sim-configs-inventory/next-boundary-recommendations.tsv:
- 三条 runtime boundary recommendation 均为
manual_promotion_lock_review。 execution_enabled=0、promotion_allowed=0保持不变。
结论
User M、Tool DB、Python Remap 三类后续运行时边界的 Native/Node/Browser proof chain 已全部闭合到 release gate 和 inventory readiness。当前没有继续推荐实现 probe 的技术 blocker;剩余状态被明确收敛为人工 promotion lock 复核,不会自动启用执行或自动提升 inventory。