551 lines
26 KiB
Markdown
551 lines
26 KiB
Markdown
# 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 检查 | 只能补充,不单独证明核心语义 |
|
||
|
||
## 记录模板
|
||
|
||
```text
|
||
## 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。
|
||
|
||
### 命令或证据路径
|
||
|
||
工作目录:
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
```
|
||
|
||
本轮实际执行命令:
|
||
|
||
```bash
|
||
./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
|
||
```
|
||
|
||
失败修复证据:
|
||
|
||
```text
|
||
首次失败: 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 通过
|
||
```
|
||
|
||
生成审计文件:
|
||
|
||
```text
|
||
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
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
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 聚合和专项补充验证。
|
||
|
||
### 命令或证据路径
|
||
|
||
工作目录:
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
```
|
||
|
||
本轮实际执行命令:
|
||
|
||
```bash
|
||
./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
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
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 支持。
|
||
|
||
## 必跑命令清单
|
||
|
||
发布前至少需要补齐以下命令证据:
|
||
|
||
```bash
|
||
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 聚合。
|
||
|
||
### 命令或证据路径
|
||
|
||
工作目录:
|
||
|
||
```bash
|
||
cd /home/mes123456/cnc_wams/wasm-port
|
||
```
|
||
|
||
关键命令:
|
||
|
||
```bash
|
||
./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
|
||
```
|
||
|
||
### 实际输出摘要
|
||
|
||
```text
|
||
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。
|
||
|
||
### 最终验证输出摘要
|
||
|
||
```text
|
||
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。
|
||
|
||
### 最终验证输出摘要
|
||
|
||
```text
|
||
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=true`
|
||
- `toolDbProcessProofSummary.nativeProtocolReady=true`
|
||
- `pythonRemapRuntimeProofSummary.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`。
|
||
|
||
### 最终验证输出摘要
|
||
|
||
```text
|
||
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_passed`
|
||
- `native_pass_ready=1`
|
||
- `native_evidence_ready=1`
|
||
- `node_inventory_gate_complete=1`
|
||
- `browser_smoke_gate_complete=1`
|
||
- `promotion_lock_active=1`
|
||
- `manual_lock_update_required=1`
|
||
- `promotion_ready=0`
|
||
- `execution_enabled=0`
|
||
- `promotion_allowed=0`
|
||
- `blocking_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_manualtoolchange` Tk 组件,保留 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>` 调用 vendored `M128`/`M129` Tcl 脚本,验证 `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 M `runtime_state_probe_passed` stdout 证明,和 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。
|
||
|
||
### 最终验证输出摘要
|
||
|
||
```text
|
||
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。
|