Files
cnc_wams/wasm-port/docs/sim-configs-coverage-handoff.md
wangdequan c2e07518d3 接续上一轮,按接续文件持续推进
结论:已完成剩余77个SKIP的promotion复核;仅2个main SKIP且promotion_allowed均为0,当前baseline保持82/82/77/0,并新增文档与docs smoke防止误promotion。
2026-06-20 08:07:06 +08:00

6.7 KiB

Sim-config coverage release handoff

This document is the short release-gate handoff for linuxcnc/configs/sim coverage in the LinuxCNC WASM/browser port. It points to the detailed matrix, fixes the current machine-readable inventory baseline, and records which skipped rows remain blocked instead of promoted.

Detailed references:

  • docs/sim-configs-coverage-matrix.md
  • docs/sim-configs-completion-plan.md
  • docs/full-process-boundary-design.md
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjs

Current inventory baseline

The current Node/WASM inventory gate is:

SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh

Required output:

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
sim_configs_wasm_node_inventory_skip_ASSET_ONLY=65
sim_configs_wasm_node_inventory_skip_L4_USER_M_PROCESS=1
sim_configs_wasm_node_inventory_skip_NON_MAIN_CLASS=10
sim_configs_wasm_node_inventory_skip_UPSTREAM_DEMO=1
sim_configs_wasm_node_inventory=ok

The generated artifact baseline is:

  • build/wasm/sim-configs-inventory/summary.tsv
  • build/wasm/sim-configs-inventory/skip-summary.tsv
  • build/wasm/sim-configs-inventory/boundary-summary.tsv
  • build/wasm/sim-configs-inventory/blocked-dependency-summary.tsv
  • build/wasm/sim-configs-inventory/full-process-boundary-summary.tsv
  • build/wasm/sim-configs-inventory/python-remap-boundary-summary.tsv
  • build/wasm/sim-configs-inventory/promotion-candidates.tsv
  • build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv
  • build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv
  • build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv
  • build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv
  • build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-rollup.tsv

The current promotion-candidate artifact is evidence accounting only. It has 10 rows total: 8 evidence-ready rows with virtual HAL source-derived browser/release evidence, and 2 inventory-ready skipped main-program rows. Every row keeps promotion_allowed=0, so the inventory baseline is now 82/82/77/0. The companion evidence-expansion-candidates.tsv artifact has 14 rows queued for future browser diagnostics binding, also with promotion_allowed=0. remaining-skip-main-program-promotion-audit.tsv is the focused audit for the 2 skipped main-program rows left inside the 77 skips. It keeps both promotion_allowed=0: axis/vismach/millturn/example.ngc is still blocked on incomplete user-M process native/inventory promotion proof, even though the browser simulation state now includes a source-derived virtual HAL proof for the M429 -> M129 turn and M428 -> M128 mill state transitions. The TWP incremental_repetition_g533.ngc row remains preserved upstream demo evidence. The 2026-06-20 re-audit confirmed that there are no directly promotable remaining skipped main-program rows:

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

The 65 ASSET-ONLY rows and 10 NON_MAIN_CLASS rows remain non-main evidence targets, not standalone browser main programs.

SDK and workflow-overview release URL summaries expose the current evidence-ready layer as dashboard fields: evidence-ready-candidate-rows=8, evidence-ready-candidate-preview=qtdragon-multi-joint-on-abort, evidence-ready-candidate-preview-gcode=linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc, evidence-ready-candidate-promotion-allowed=0, and evidence-ready-candidate-baseline-changing=no. These fields are visibility for existing source-derived browser/release evidence, not permission to change the Node inventory baseline.

Skip reason map

The TSV artifacts use hyphenated reason names. The shell output uses underscore-safe metric names. Treat these as the same baseline:

Artifact reason Shell metric suffix Count Release decision
ASSET-ONLY ASSET_ONLY 65 Subroutine/support asset; not a standalone browser main-program target.
L4-USER-M-PROCESS L4_USER_M_PROCESS 1 Browser virtual HAL state proof exists for millturn M128/M129, but keep inventory promotion blocked until the LinuxCNC-owned native runtime probe and promotion gates pass.
NON_MAIN_CLASS NON_MAIN_CLASS 10 Covered by class representative or macro/load policy, not direct standalone promotion.
UPSTREAM-DEMO UPSTREAM_DEMO 1 Preserved upstream demo edge; do not force pass.

Promotion policy

Rows may only move from skip/inventory to promoted coverage when all of these are true:

  1. The row has a LinuxCNC-owned runtime proof for the behavior being promoted.
  2. Native proof passes first.
  3. Node/WASM proof passes after native proof.
  4. Browser/host proof passes after Node/WASM proof.
  5. verify_no_standalone_cnc_semantics.sh still passes.
  6. Generated inventory artifacts and docs agree on the new status.

Do not promote these runtime families from JavaScript glue alone:

  • L4-PYTHON-REMAP
  • L4-TOOL-DB
  • L4-USER-M-PROCESS

L4-TOOL-DB is no longer counted in the current skip summary, but it remains in the runtime-boundary proof ledger with promotion_allowed=0.

Release gate

Use this gate when changing sim-config coverage, promotion state, or inventory documentation:

git diff --check
wasm-port/tools/verify_vendor_sync.sh
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/docs/node/verify_sim_configs_coverage_docs.sh
wasm-port/tests/host/verify_host_smokes.sh

The host aggregate must continue to include:

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
opfs_session_docs_node_smoke=ok
sim_configs_coverage_docs_node_smoke=ok
host_wasm_opfs_browser_smokes=ok

Blocked runtime probes

The opt-in runtime probes remain disabled on this host unless the required LinuxCNC runtime processes are available:

ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh

These commands are proof gates for future work, not part of the current release gate. The current inventory must continue to record the corresponding families as blocked.