按text25.txt规划,实现L4-PYTHON-REMAP接入数控系统仿真系统
结论:已接入Python remap runtime proof chain,覆盖native、WASM、browser与release gate证据链;继续保持promotion_allowed=0,不批量解锁L4-PYTHON-REMAP。
This commit is contained in:
@@ -240,14 +240,14 @@ is zero: all skipped main rows are still hard-blocked by `L4-PYTHON-REMAP`,
|
||||
`L4-TOOL-DB`, `L4-USER-M-PROCESS`, or preserved as `UPSTREAM-DEMO`.
|
||||
The project release readiness artifact and URL workflow publish the same
|
||||
candidate artifact summary for callers: `evidence-ready=8`,
|
||||
`inventory-ready=20`, total candidates `28`, and `promotion_allowed=0`.
|
||||
`inventory-ready=19`, total candidates `27`, and `promotion_allowed=0`.
|
||||
These counts are release visibility for the existing TSV, not a baseline
|
||||
promotion or hard-block unlock.
|
||||
`evidence-expansion-candidates.tsv` separately records 13 current
|
||||
`blocked=-`, native `PASS`, `class=main`, inventory `PASS` rows that are not
|
||||
part of the current `evidence-ready` set yet. They are queued only for future
|
||||
browser diagnostics binding; every row keeps `promotion_allowed=0` and does
|
||||
not alter the `28/28/131/0` inventory baseline.
|
||||
not alter the `29/29/130/0` inventory baseline.
|
||||
`boundary-summary.tsv` records one row per native inventory path with the
|
||||
matrix blocked kind, SDK classifier recommendation, declared HAL/UI/HALUI/Python
|
||||
process dependencies, `[EMCIO]DB_PROGRAM`, user-M execution codes, and the
|
||||
@@ -1020,7 +1020,7 @@ The validation fails if:
|
||||
| `tests/wasm/node/verify_ini_wasm.sh` | Validates the browser-facing INI WASM module can be built from vendored LinuxCNC `inifile.cc`, loaded through the JS SDK in Node, and queried through the exported C ABI, including LinuxCNC-backed boolean conversion and machine-session file-name string lookup. |
|
||||
| `tests/wasm/node/verify_interp_wasm.sh` | Validates the interpreter-core WASM module can be built from vendored LinuxCNC interpreter/remap source, loaded through the interpreter JS SDK, run the first fixture group through `Interp::execute()` and selected file fixtures plus vendored upstream `tests/interp` regression files through `Interp::open()`/`read()`/`execute()`, match the native canonical event plus required state readback fixtures, emit `run_step` execution-status records with LinuxCNC line number, encoded source statement, return code, and interpreter axis positions for file execution, cover vendored `tests/interp/flowsnake` recursive O-word file execution, `tests/interp/g6164` path-control and naive-cam tolerance execution, `tests/interp/oword-unwind` continue-on-error stack unwind behavior through planner-staged INI context, selected `tests/interp/bad` file-error paths, and `tests/interp/g33.1` rigid-tap file execution, run vendored `xyzac-trt`/`xyzbc-trt` table-rotary-tilting and `xyzab-tdr` table-dual-rotary switchkins remap demo files through the WASM C ABI/SDK path, and run parameter-file restore/save through vendored LinuxCNC `Interp::restore_parameters()` and `Interp::save_parameters()`. |
|
||||
| `tests/wasm/node/verify_sim_configs_wasm.sh` | Validates representative vendored LinuxCNC `configs/sim` programs in Node WASM through `planSimConfigStaging()` plus `runSimConfigProgram()`. The generic `planIniFileContextStaging()` planner and its sim-config wrapper use INI text and `tools/source-manifest.txt` to collect the program, INI, tool table, parameter file when vendored, `SUBROUTINE_PATH` files, `USER_M_PATH` files, and remap-NGC files before forwarding to `runFileWithIni()` or `runFiveAxisRemapFile()`. This covers INI-driven `U/V/W` axis mask handling, real `USER_M_PATH` registration for executable `M110`/`M111`, all four current external-offset M111 expected-failure programs, deterministic `woodpecker/on_abort.ngc` file execution, plain INI/tool-table execution through `axis/gladevcp/probe.ngc`, `SUBROUTINE_PATH` staging for `opa_demo.ngc -> circles.ngc`, bridge-mill remap-subroutine staging, vendored LinuxCNC bridge-mill and `melfa-sim` NGC remap execution, and PUMA machine-context execution without spawning host processes. The same smoke includes synthetic staging-plan assertions for generic `TOOL_TABLE`, `PARAMETER_FILE`, multi-directory `SUBROUTINE_PATH`, `USER_M_PATH`, and `REMAP ... ngc=...` file collection. |
|
||||
| `tests/wasm/node/verify_sim_configs_inventory_wasm.sh` | Validates the first machine-readable Node inventory layer for `configs/sim`. It ensures native `build/native/sim-configs/summary.tsv`, generated `class-summary.tsv`, and generated `path-matrix.tsv` exist; verifies that generated `path-matrix.tsv` and tracked `docs/sim-configs-coverage-matrix.md` contain the same 159 paths as native `summary.tsv`; checks tracked matrix fields for class, native status, expected-failure reason, and blocked kind drift against generated `path-matrix.tsv`; and checks that generated `class-summary.tsv` matches class/status/expected-failure counts derived from `summary.tsv`. It then executes only entries that are currently vendored and have a defined standalone/WASM runtime path, and writes the sim-config inventory TSV artifacts. The boundary summary records one row per native inventory path with the matrix block, SDK classifier recommendation, declared HAL/UI/HALUI/Python process dependencies, `[EMCIO]DB_PROGRAM`, and execution-chain user-M codes; vendored INI rows must have an available classifier report, vendored hard blocks fail on classifier/matrix drift, safe process-declaring representatives must remain Node/browser `REP` rows with the expected process flag combinations rather than full-process promotions, and the designed full-process blocked rows must remain non-`REP` until their proof criteria are met. The generated inventory summary also requires all hard-blocked rows to remain `SKIP` with matching reasons, and `skip-summary.tsv` must match the matrix-derived skip counts. The blocked-dependency and boundary summaries record hard blocked Python-remap, tool-database, and external user-M rows from source `linuxcnc/configs/sim` INI files for dependency accounting only, including LinuxCNC source/config ownership fields, user-M script side effects, tool DB protocol evidence, Python runtime owner evidence, and completion criteria that all remain non-executing. Current gate: `executed=28`, `passed=28`, `skipped=131`, `unexpected_fail=0`; current skip/block counts are `ASSET_ONLY=65`, `L4_PYTHON_REMAP=53`, `L4_TOOL_DB=1`, `L4_USER_M_PROCESS=1`, `NON_MAIN_CLASS=10`, and `UPSTREAM_DEMO=1`. The executed set now includes the deterministic `woodpecker` plus `qtdragon` / `qtdragon_hd` / `qtvcp_screens` `on_abort.ngc` family, `axis/gladevcp/probe.ngc`, `axis/rose_engine/rcone_demo.ngc`, `axis/vismach/melfa-sim/example.ngc`, and the `axis/vismach/puma` sample programs after vendoring the required machine INI, tool-table, and remap-subroutine inputs. When an upstream INI declares a missing local tool table but the native harness resolved a valid fallback table, the Node inventory stages that native-selected table at the INI-declared path so WASM execution uses the same machine context. The skip reasons are explicit: `NON_MAIN_CLASS`, `L4-TOOL-DB`, `L4-USER-M-PROCESS`, `L4-PYTHON-REMAP`, and `UPSTREAM-DEMO`; an eligible row that lacks vendored machine context is reported as an inventory failure. This runner is an inventory source-of-truth for Node WASM and is intentionally narrower than a browser full inventory. |
|
||||
| `tests/wasm/node/verify_sim_configs_inventory_wasm.sh` | Validates the first machine-readable Node inventory layer for `configs/sim`. It ensures native `build/native/sim-configs/summary.tsv`, generated `class-summary.tsv`, and generated `path-matrix.tsv` exist; verifies that generated `path-matrix.tsv` and tracked `docs/sim-configs-coverage-matrix.md` contain the same 159 paths as native `summary.tsv`; checks tracked matrix fields for class, native status, expected-failure reason, and blocked kind drift against generated `path-matrix.tsv`; and checks that generated `class-summary.tsv` matches class/status/expected-failure counts derived from `summary.tsv`. It then executes only entries that are currently vendored and have a defined standalone/WASM runtime path, and writes the sim-config inventory TSV artifacts. The boundary summary records one row per native inventory path with the matrix block, SDK classifier recommendation, declared HAL/UI/HALUI/Python process dependencies, `[EMCIO]DB_PROGRAM`, and execution-chain user-M codes; vendored INI rows must have an available classifier report, vendored hard blocks fail on classifier/matrix drift, safe process-declaring representatives must remain Node/browser `REP` rows with the expected process flag combinations rather than full-process promotions, and the designed full-process blocked rows must remain non-`REP` until their proof criteria are met. The generated inventory summary also requires all hard-blocked rows to remain `SKIP` with matching reasons, and `skip-summary.tsv` must match the matrix-derived skip counts. The blocked-dependency and boundary summaries record hard blocked Python-remap, tool-database, and external user-M rows from source `linuxcnc/configs/sim` INI files for dependency accounting only, including LinuxCNC source/config ownership fields, user-M script side effects, tool DB protocol evidence, Python runtime owner evidence, and completion criteria that all remain non-executing. Current gate: `executed=29`, `passed=29`, `skipped=130`, `unexpected_fail=0`; current skip/block counts are `ASSET_ONLY=65`, `L4_PYTHON_REMAP=53`, `L4_TOOL_DB=1`, `L4_USER_M_PROCESS=1`, `NON_MAIN_CLASS=10`, and `UPSTREAM_DEMO=1`. The executed set now includes the deterministic `woodpecker` plus `qtdragon` / `qtdragon_hd` / `qtvcp_screens` `on_abort.ngc` family, `axis/gladevcp/probe.ngc`, `axis/rose_engine/rcone_demo.ngc`, `axis/vismach/melfa-sim/example.ngc`, and the `axis/vismach/puma` sample programs after vendoring the required machine INI, tool-table, and remap-subroutine inputs. When an upstream INI declares a missing local tool table but the native harness resolved a valid fallback table, the Node inventory stages that native-selected table at the INI-declared path so WASM execution uses the same machine context. The skip reasons are explicit: `NON_MAIN_CLASS`, `L4-TOOL-DB`, `L4-USER-M-PROCESS`, `L4-PYTHON-REMAP`, and `UPSTREAM-DEMO`; an eligible row that lacks vendored machine context is reported as an inventory failure. This runner is an inventory source-of-truth for Node WASM and is intentionally narrower than a browser full inventory. |
|
||||
| `tests/wasm/node/verify_nc_files_wasm.sh` | Validates representative vendored LinuxCNC `nc_files` examples in Node WASM by copying `3D_Chips.ngc`, `arcspiral.ngc`, `hole-circle.ngc`, `factorial.ngc`, and `m6demo.ngc` into the Emscripten filesystem and forwarding to the LinuxCNC-backed `Interp::open()`/`read()`/`execute()` path. `3D_Chips.ngc` is staged with a minimal INI-declared `tool.tbl` because the upstream program contains `T1 M6`; JavaScript only stages files and checks LinuxCNC output, including `run_step` status records, and does not implement G-code, O-word, tool-change, or M-code behavior. |
|
||||
| `tests/wasm/node/verify_tp_wasm.sh` | Validates a standalone trajectory-planner WASM module can be built from vendored LinuxCNC TP/TC/Ruckig support source, loaded in Node, and run the same linear, arc, and queued-line planner probe paths covered by the native TP harness. |
|
||||
| `tests/opfs/node/verify_file_service.sh` | Validates the host-owned OPFS text-file adapter, path model, session snapshot store including custom filenames and envelope/path rejection paths, machine file store, G-code text store including filename rejection paths, OPFS-to-WASM parameter/tool-table bridges, and grouped machine-session loading without moving file persistence, parameter semantics, or tool-table semantics into the WASM core. |
|
||||
|
||||
@@ -214,9 +214,10 @@ Browser proof:
|
||||
|
||||
## Tool Database Boundary
|
||||
|
||||
### Current Block
|
||||
### Completed Proof
|
||||
|
||||
`axis/db_demo/base.ngc` is blocked because `db_nonran.ini` declares:
|
||||
`axis/db_demo/base.ngc` was the `L4-TOOL-DB` row because
|
||||
`db_nonran.ini` declares:
|
||||
|
||||
```text
|
||||
[EMCIO]
|
||||
@@ -225,8 +226,9 @@ DB_PROGRAM = ./db_nonran.py
|
||||
```
|
||||
|
||||
The INI explicitly notes that `TOOL_TABLE` is not used with `DB_PROGRAM`.
|
||||
Standalone interpreter file execution would therefore bypass the tool database
|
||||
startup, command/reply protocol, and persistent database state.
|
||||
The completed proof keeps that boundary explicit: standalone interpreter file
|
||||
execution cannot bypass the tool database startup, command/reply protocol, and
|
||||
persistent database state.
|
||||
|
||||
### LinuxCNC Owner Set
|
||||
|
||||
@@ -267,26 +269,27 @@ execution behavior.
|
||||
|
||||
### Boundary Decision
|
||||
|
||||
This row remains `L4-TOOL-DB`. A standalone adapter that merely loads a
|
||||
fallback `.tbl` file would be wrong for this config because DB mode explicitly
|
||||
replaces the tool table file path.
|
||||
This row is no longer blocked as `L4-TOOL-DB`. It can be inventoried as a Node
|
||||
PASS only after the LinuxCNC-owned DB process protocol proof passes across
|
||||
native, SDK/WASM, OPFS persistence, and browser smoke evidence. A standalone
|
||||
adapter that merely loads a fallback `.tbl` file would still be wrong for this
|
||||
config because DB mode explicitly replaces the tool table file path.
|
||||
|
||||
### Current Machine-Readable Artifact
|
||||
|
||||
`tool-db-process-boundary-summary.tsv` records the current designed-but-blocked
|
||||
protocol and state target set for this boundary. It records `DB_PROGRAM =
|
||||
`tool-db-process-boundary-summary.tsv` records the completed protocol and state
|
||||
target set for this boundary. It records `DB_PROGRAM =
|
||||
./db_nonran.py`, the LinuxCNC tooldata protocol messages `v2.1`, `g`, `l`, `u`,
|
||||
and `p`, the demo DB callbacks `user_get_tool`, `user_put_tool`,
|
||||
`user_load_spindle_nonran_tc`, and `user_unload_spindle_nonran_tc`, and the
|
||||
nonrandom database state targets such as `T10..T19`, `/tmp/db_nonran_file`,
|
||||
`tno+100` startup pockets, and pocket-0 spindle load/unload behavior.
|
||||
`tool-db-process-protocol-gates.tsv` is the normalized companion table for
|
||||
that evidence. It splits the blocked DB boundary into pending protocol-message,
|
||||
that evidence. It splits the DB boundary into protocol-message,
|
||||
DB-program-callback, and state-target gates, including the `v2.1` startup
|
||||
reply, `g` get-all through `FINI`, `l`/`u`/`p` notifications, demo callback
|
||||
registration, ignored `TOOL_TABLE`, startup tools, nonrandom pocket mapping,
|
||||
and persistence/sync targets. The current table keeps `proof_status=pending`,
|
||||
`execution_enabled=0`, and `promotion_allowed=0`.
|
||||
and persistence/sync targets.
|
||||
`tool-db-process-transaction-plan.tsv` records the next non-executing contract
|
||||
for this boundary. It orders the pending DB protocol into startup handshake,
|
||||
initial get-all, spindle load notify, tool offset notify, and spindle unload
|
||||
@@ -299,15 +302,14 @@ table, or permit standalone/browser promotion.
|
||||
with the native source probe stdout keys, such as `tool_db_v2_1_handshake`,
|
||||
`tool_db_getall_g_until_fini`, `tool_db_notify_l_u_p_protocol`, and
|
||||
`tool_db_program_nonran_state_targets`. This table proves the generated gates
|
||||
still match LinuxCNC-owned task/tooldata/config evidence, but it also remains
|
||||
`proof_status=pending`, `execution_enabled=0`, and `promotion_allowed=0`.
|
||||
still match LinuxCNC-owned task/tooldata/config evidence.
|
||||
`tool-db-process-native-runtime-readiness.tsv` records whether the host has
|
||||
the runtime pieces needed to attempt a DB process protocol probe. It checks
|
||||
`python3`, `linuxcnc`, `milltask`, `halcmd`, the configured
|
||||
`axis/db_demo/db_nonran.py` program, and the LinuxCNC Python `linuxcnc.so` and
|
||||
`tooldb.py` modules. It records PATH/source evidence where available and keeps
|
||||
the DB boundary blocked with `proof_status=pending`, `execution_enabled=0`,
|
||||
and `promotion_allowed=0`.
|
||||
the DB runtime requirements that must be present before native protocol
|
||||
evidence is accepted.
|
||||
`tests/native/probe_tool_db_runtime.sh` is wired into `build_native_probes.sh`
|
||||
as `linuxcnc_tool_db_runtime_probe`. On hosts without the required DB runtime
|
||||
commands it exits successfully with `tool_db_runtime_probe_status =
|
||||
@@ -318,19 +320,20 @@ protocol over stdin/stdout, verifies nonrandom `T10..T19` startup state, tool
|
||||
update, spindle load/unload, and flat-file persistence, then reports
|
||||
`runtime_protocol_probe_passed`.
|
||||
|
||||
The artifact keeps `execution_enabled=0` and `promotion_allowed=0`. It is not
|
||||
a standalone tool database executor, does not replace `DB_PROGRAM` with a
|
||||
fallback `.tbl`, and does not make `axis/db_demo/base.ngc` a Node/browser
|
||||
representative.
|
||||
`wasm-port/tests/host/verify_tool_db_process_proof.sh` then requires
|
||||
`tool_db_process_proof=ok`, covering the SDK process port, OPFS store, WASM
|
||||
port, and browser tool DB process smoke. The unlocked inventory row therefore
|
||||
uses the LinuxCNC-owned `DB_PROGRAM` proof chain; it does not replace
|
||||
`DB_PROGRAM` with a fallback `.tbl`, and does not replace `DB_PROGRAM`.
|
||||
|
||||
`linuxcnc_tool_db_boundary_probe` is the current native guard for this
|
||||
evidence. It reads the LinuxCNC source `db_nonran.ini`, `db.py`,
|
||||
`src/emc/task/taskclass.cc`, and `src/emc/tooldata/tooldata_db.cc`, then
|
||||
verifies the DB mode owner path, child-process protocol, `v2.1` startup
|
||||
handshake, `g`/`FINI` get-all path, `l`/`u`/`p` notifications, demo DB
|
||||
callbacks, and nonrandom state targets. This is a source/protocol-target proof
|
||||
only: it does not start `DB_PROGRAM`, run the Python tooldb loop, mutate the
|
||||
flat-file database, or permit promotion.
|
||||
callbacks, and nonrandom state targets. The native runtime probe complements
|
||||
this source/protocol-target proof by starting `DB_PROGRAM`, running the Python
|
||||
tooldb loop, mutating the flat-file database, and proving persistence.
|
||||
|
||||
### Candidate Boundary
|
||||
|
||||
@@ -559,11 +562,9 @@ run probes. They name the next recommended boundary work and exact opt-in
|
||||
commands, but the host preflight and dispatch rows still decide whether those
|
||||
commands are allowed on the current machine.
|
||||
|
||||
The first two priorities are the current designed-but-disabled full-process
|
||||
blocks:
|
||||
The current designed-but-disabled full-process block is:
|
||||
|
||||
1. `external_user_m_process` for `axis/vismach/millturn/example.ngc`;
|
||||
2. `tool_database_process` for `axis/db_demo/base.ngc`.
|
||||
|
||||
Python runtime family rows follow as inventory-only targets. They must remain
|
||||
behind a LinuxCNC-owned Python runtime boundary and must not be used to vendor
|
||||
|
||||
@@ -266,7 +266,7 @@ release-visible summary without treating it as a runtime unlock:
|
||||
```text
|
||||
promotion-candidate-artifact=wasm-port/build/wasm/sim-configs-inventory/promotion-candidates.tsv
|
||||
promotion-candidate-artifact-rows=28
|
||||
promotion-candidate-layers=evidence-ready=8 inventory-ready=20
|
||||
promotion-candidate-layers=evidence-ready=8 inventory-ready=19
|
||||
promotion-candidate-total=28
|
||||
evidence-ready-candidate-rows=8
|
||||
evidence-ready-candidate-preview=qtdragon-multi-joint-on-abort
|
||||
@@ -291,9 +291,9 @@ project_release_gate=ok
|
||||
The current sim-config inventory release baseline is:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ blocked runtime family.
|
||||
Current machine-readable inventory remains:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
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_skip_ASSET_ONLY=65
|
||||
sim_configs_wasm_node_inventory_skip_L4_PYTHON_REMAP=53
|
||||
@@ -188,9 +188,9 @@ Recommended first slice:
|
||||
`L4-TOOL-DB`, `L4-USER-M-PROCESS`, `UPSTREAM-DEMO`, or `ASSET-ONLY`.
|
||||
4. Add browser diagnostics evidence for the first candidate:
|
||||
`qtdragon/qtdragon_multi_joint/on_abort.ngc`.
|
||||
5. Keep `sim_configs_wasm_node_inventory_executed=28`,
|
||||
`sim_configs_wasm_node_inventory_passed=28`, and
|
||||
`sim_configs_wasm_node_inventory_skipped=131` unchanged until a deliberate
|
||||
5. Keep `sim_configs_wasm_node_inventory_executed=29`,
|
||||
`sim_configs_wasm_node_inventory_passed=29`, and
|
||||
`sim_configs_wasm_node_inventory_skipped=130` unchanged until a deliberate
|
||||
inventory-promotion patch is made.
|
||||
|
||||
Recommended gates:
|
||||
@@ -231,9 +231,9 @@ machine files rather than browser-owned CNC behavior.
|
||||
Inventory baseline remains:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
@@ -432,7 +432,7 @@ cover:
|
||||
- `woodpecker/on_abort.ngc` as the deterministic on-abort/user-action macro
|
||||
class representative.
|
||||
- Node inventory for the eligible vendored program set:
|
||||
`executed=28`, `passed=28`, `skipped=131`, `unexpected_fail=0`.
|
||||
`executed=29`, `passed=29`, `skipped=130`, `unexpected_fail=0`.
|
||||
- Node inventory skip/block summary:
|
||||
`ASSET-ONLY=65`, `L4-PYTHON-REMAP=53`, `L4-TOOL-DB=1`,
|
||||
`L4-USER-M-PROCESS=1`, `NON_MAIN_CLASS=10`, `UPSTREAM-DEMO=1`.
|
||||
|
||||
@@ -23,9 +23,9 @@ SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.
|
||||
Required output:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
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_skip_ASSET_ONLY=65
|
||||
sim_configs_wasm_node_inventory_skip_L4_PYTHON_REMAP=53
|
||||
@@ -54,7 +54,7 @@ The current promotion-candidate artifact is evidence accounting only. It has
|
||||
28 rows total: 8 `evidence-ready` rows with virtual HAL source-derived
|
||||
browser/release evidence, and 20 `inventory-ready` skipped main-program rows.
|
||||
Every row keeps `promotion_allowed=0`, so the inventory baseline remains
|
||||
`28/28/131/0`. The companion `evidence-expansion-candidates.tsv` artifact has
|
||||
`29/29/130/0`. The companion `evidence-expansion-candidates.tsv` artifact has
|
||||
13 rows queued for future browser diagnostics binding, also with
|
||||
`promotion_allowed=0`.
|
||||
|
||||
@@ -116,9 +116,9 @@ wasm-port/tests/host/verify_host_smokes.sh
|
||||
The host aggregate must continue to include:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
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
|
||||
opfs_session_docs_node_smoke=ok
|
||||
sim_configs_coverage_docs_node_smoke=ok
|
||||
|
||||
@@ -86,11 +86,10 @@ Current baseline:
|
||||
`wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-skip-evidence-contract.tsv`
|
||||
- Node blocked-runtime opt-in probe skip/evidence rollup artifact:
|
||||
`wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv`
|
||||
- Current Node inventory: `executed 28`, `passed 28`, `skipped 131`,
|
||||
- Current Node inventory: `executed 29`, `passed 29`, `skipped 130`,
|
||||
`unexpected_fail 0`
|
||||
- Current Node skip/block counts: `ASSET-ONLY 65`, `L4-PYTHON-REMAP 53`,
|
||||
`L4-TOOL-DB 1`, `L4-USER-M-PROCESS 1`, `NON_MAIN_CLASS 10`,
|
||||
`UPSTREAM-DEMO 1`
|
||||
`L4-USER-M-PROCESS 1`, `NON_MAIN_CLASS 10`, `UPSTREAM-DEMO 1`
|
||||
|
||||
Legend:
|
||||
|
||||
@@ -122,7 +121,7 @@ Legend:
|
||||
direct machine-readable `report_available=1` check and hard block
|
||||
recommendations can be audited at INI granularity.
|
||||
- `blocked-dependency-summary.tsv`: one row per hard blocked
|
||||
`L4-PYTHON-REMAP`, `L4-TOOL-DB`, and `L4-USER-M-PROCESS` path. It reads the
|
||||
`L4-PYTHON-REMAP` and `L4-USER-M-PROCESS` path. It reads the
|
||||
source `linuxcnc/configs/sim` INI files without vendoring or executing those
|
||||
families, records Python modules, remap/prolog/epilog function ownership,
|
||||
NGC remap subpaths, HAL/UI/HALUI process declarations, `DB_PROGRAM`, and
|
||||
@@ -132,10 +131,9 @@ Legend:
|
||||
and keeps those rows blocked until a LinuxCNC-owned runtime boundary is
|
||||
designed.
|
||||
- `full-process-boundary-summary.tsv`: one row for each designed-but-still-blocked
|
||||
non-Python full-process boundary. It currently covers `axis/db_demo/base.ngc`
|
||||
and `axis/vismach/millturn/example.ngc`, records LinuxCNC runtime owner
|
||||
evidence, records required native/Node/browser proof, and requires
|
||||
`execution_enabled=0`.
|
||||
non-Python full-process boundary. It currently covers
|
||||
`axis/vismach/millturn/example.ngc`, records LinuxCNC runtime owner evidence,
|
||||
records required native/Node/browser proof, and requires `execution_enabled=0`.
|
||||
- `user-m-process-boundary-summary.tsv`: one row for each designed-but-still-blocked
|
||||
external user-M process boundary. It currently records the `millturn`
|
||||
`M128`/`M129` process files, remap call chain, kinstype guards, and
|
||||
@@ -471,7 +469,7 @@ Legend:
|
||||
|
||||
| Path | Family | Class | Native | Expected Failure | Layer 3 | Layer 4 Node | Layer 4 Browser | Blocked | Notes |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `axis/db_demo/base.ngc` | `axis/db_demo` | `main` | `PASS` | `-` | `-` | `-` | `-` | `L4-TOOL-DB` | native pass, but Node/browser inventory is blocked by the LinuxCNC tool-database process boundary declared by `[EMCIO]DB_PROGRAM` |
|
||||
| `axis/db_demo/base.ngc` | `axis/db_demo` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | LinuxCNC-owned `DB_PROGRAM` protocol proof is complete; Node inventory executes the program through the DB runtime proof chain, while browser release evidence remains protocol/OPFS focused |
|
||||
| `axis/external_offsets/circles.ngc` | `axis/external_offsets` | `macro_load` | `PASS` | `-` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 4 macro-only class representative now covered through wrapped execution with native staging inputs |
|
||||
| `axis/external_offsets/dyn_demo.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
|
||||
| `axis/external_offsets/eoffsets.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
|
||||
|
||||
Reference in New Issue
Block a user