先提交到云仓库

结论:已提交当前 Python-remap proof 链路、runtime/browser/UI/docs 相关变更;保持 L4-PYTHON-REMAP inventory baseline 不直接批量 PASS。
This commit is contained in:
2026-06-20 00:06:10 +08:00
parent fbf9dade9c
commit ac52b48d62
36 changed files with 4388 additions and 240 deletions

View File

@@ -200,6 +200,8 @@ wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-probe-gat
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-family-summary.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-bulk-promotion-plan.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-row-runtime-proof.tsv
wasm-port/build/wasm/sim-configs-inventory/boundary-phase-completion-summary.tsv
wasm-port/build/wasm/sim-configs-inventory/native-proof-alignment-summary.tsv
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-native-alignment-summary.tsv
@@ -311,22 +313,21 @@ command, the current probe status, and keeps `execution_enabled=0` and
`promotion_allowed=0`. It does not run probes or relax promotion locks.
`runtime-boundary-host-requirement-summary.tsv` normalizes those preflight
requirements into one row per host command or source/module prerequisite, so
missing `halcmd`, `halrun`, `linuxcnc`, and `milltask` can be audited by the
blocked families they affect. `runtime-boundary-host-unblock-plan.tsv`
filters that table to unavailable requirements and records the affected
opt-in commands and remaining missing requirements; it is a planning artifact
only.
available and missing requirements can be audited by the blocked families they
affect. `runtime-boundary-host-unblock-plan.tsv` filters that table to
unavailable requirements and records the affected opt-in commands and
remaining missing requirements; it is a planning artifact only.
`runtime-boundary-family-host-readiness.tsv` reduces the same host evidence to
one row per blocked runtime family, and
`runtime-boundary-host-readiness-rollup.tsv` gives the aggregate decision. On
this host the rollup remains `host_blocked_for_all_opt_in_native_probes` with
zero ready opt-in commands. These rows are non-executing and non-promoting.
this host the rollup is `host_ready_for_all_opt_in_native_probes` with three
ready opt-in commands. These rows are non-executing and non-promoting.
`runtime-boundary-opt-in-probe-dispatch-plan.tsv` turns each family readiness
row into a per-probe dispatch action. `runtime-boundary-opt-in-probe-dispatch-rollup.tsv`
then gives the aggregate dispatch switch; currently every blocked runtime
probe is skipped for missing host requirements. Dispatch permission only means
the guarded native probe may be manually run on a ready host, not that the row
is promoted.
then gives the aggregate dispatch switch; currently blocked runtime probes are
ready for manual opt-in native execution. Dispatch permission only means the
guarded native probe may be manually run on a ready host, not that the row is
promoted.
`runtime-boundary-opt-in-probe-skip-evidence-contract.tsv` records why each
non-dispatched probe is skipped and whether native pass evidence is required
yet. `runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv` gives the
@@ -403,10 +404,10 @@ coverage: every TSV emitted under
`full-process-boundary-design.md`. New gate artifacts must therefore be
documented before the inventory can pass.
The Node coverage gate also requires the generated WASM inventory artifact list
to remain the exact duplicate-free 55-entry baseline and the native generated
to remain the exact duplicate-free 57-entry baseline and the native generated
TSV token list to remain the exact duplicate-free 8-token baseline. It also
requires the corresponding `boundary-phase-completion-summary.tsv`
documentation-coverage counts to remain `55` and `8`, respectively. It also
documentation-coverage counts to remain `57` and `8`, respectively. It also
checks that the browser smoke source lists the same generated WASM and native
artifact tokens and preserves the same fixed-count, duplicate-free,
fetchability/header, documentation-missing, and completion count-parity guards
@@ -530,6 +531,18 @@ Python runtime lifecycle fixture, `axis/remap/stop-lookahead/nc_files`, because
it exercises Python runtime phases and configured modules without Python
callable or NGC-only subpath complexity. It is still a fixture plan only:
`proof_status=pending`, `execution_enabled=0`, and `promotion_allowed=0`.
`python-remap-bulk-promotion-plan.tsv` is the row-level Phase 1 promotion
plan for all 53 `L4-PYTHON-REMAP` inventory rows. It records pending module,
toplevel/path, callable, NGC remap asset, interpreter/canonical, HAL/UI/HALUI,
native, WASM/Node, browser, and manual-lock blockers while keeping
`execution_enabled=0` and `promotion_allowed=0`; it is not a PASS baseline
change.
`python-remap-row-runtime-proof.tsv` is the Phase 2 row-runtime proof table.
It records that the row-aware Python-remap runtime port API and per-row proof
target plan exist for all 53 rows, while module staging, TOPLEVEL execution,
PATH_PREPEND application, callable binding, NGC asset staging,
interpreter/canonical bridges, and native/WASM/browser row pass proof remain
pending with `execution_enabled=0`.
When explicitly enabled with `ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1`,
`probe_python_remap_runtime.sh` follows the fixture `demo.ini` Python path and
toplevel declarations, imports the vendored modules, verifies `queuebuster`

View File

@@ -424,6 +424,17 @@ modules but avoids Python callable and NGC-only subpath complexity. The
fixture plan is still non-executing: it records the proof target only and
keeps `proof_status=pending`, `execution_enabled=0`, and
`promotion_allowed=0`.
`python-remap-bulk-promotion-plan.tsv` is the Phase 1 row-level plan for
turning the 53 Python-remap inventory rows into future PASS candidates. It
does not unlock the rows; it records the pending runtime, module/path/toplevel,
callable, NGC remap asset, NGC-only subpath, interpreter/canonical,
HAL/UI/HALUI, native/WASM/browser, and manual-lock blockers while keeping
`execution_enabled=0` and `promotion_allowed=0`.
`python-remap-row-runtime-proof.tsv` is the Phase 2 row-runtime proof table.
It confirms that a row-aware Python-remap runtime port API and per-row proof
target plan exist for all 53 rows, then keeps the actual row runtime transcript
and native/WASM/browser pass proof pending. It is not an inventory promotion
gate and keeps `execution_enabled=0`.
`tests/native/probe_python_remap_runtime.sh` is wired into
`build_native_probes.sh` as `linuxcnc_python_remap_runtime_probe`. It records
the stop-lookahead fixture identity, configured Python modules, required
@@ -510,13 +521,13 @@ cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-native-evidence-
cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv
```
The current host is not ready for any blocked runtime opt-in probe. The
generated rollup reports missing `halcmd`, `halrun`, `linuxcnc`, and
`milltask`, with `host_blocked_for_all_opt_in_native_probes`,
`execution_enabled=0`, and `promotion_allowed=0`.
The current host is ready for manual blocked-runtime opt-in probes. The
generated rollup reports no missing host requirements, with
`host_ready_for_all_opt_in_native_probes`, `execution_enabled=0`, and
`promotion_allowed=0`.
The opt-in commands remain forbidden while their dispatch rows have
`dispatch_allowed=0`:
The opt-in commands remain manual proof gates; dispatch rows may have
`dispatch_allowed=1`, but that does not enable execution or promotion:
```bash
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh

View File

@@ -12,14 +12,19 @@ Detailed references:
- `docs/sim-configs-coverage-handoff.md`
- `tests/wasm/node/verify_sim_configs_inventory_wasm.mjs`
## Current blocked runtime families
## Current runtime boundary families
The current hard blocked families are:
The current runtime-boundary proof families are:
- `L4-USER-M-PROCESS`
- `L4-TOOL-DB`
- `L4-PYTHON-REMAP`
The current Node inventory skip/block summary still has `L4-PYTHON-REMAP=53`
and `L4-USER-M-PROCESS=1`. `L4-TOOL-DB` is no longer a skipped inventory row,
but it remains represented in the runtime-boundary proof ledger with
`promotion_allowed=0`.
Current host readiness is summarized by:
- `build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv`
@@ -32,13 +37,13 @@ Current host readiness is summarized by:
Current rollup state:
```text
host_readiness_status=host_blocked_for_all_opt_in_native_probes
host_readiness_status=host_ready_for_all_opt_in_native_probes
family_count=3
host_ready_family_count=0
host_blocked_family_count=3
blocked_families=L4-PYTHON-REMAP,L4-TOOL-DB,L4-USER-M-PROCESS
missing_host_requirements=halcmd,halrun,linuxcnc,milltask
ready_opt_in_command_count=0
host_ready_family_count=3
host_blocked_family_count=0
blocked_families=-
missing_host_requirements=-
ready_opt_in_command_count=3
execution_enabled=0
promotion_allowed=0
```
@@ -48,10 +53,9 @@ promotion_allowed=0
Each blocked family currently has `promotion_ready=0`, `execution_enabled=0`,
and `promotion_allowed=0`.
The current blocker keys are:
For `L4-USER-M-PROCESS` and `L4-TOOL-DB`, the current blocker keys are:
```text
host_runtime_requirements_missing
native_runtime_probe_not_passed
native_pass_evidence_not_ready
node_inventory_gate_not_complete
@@ -60,25 +64,46 @@ promotion_lock_active
manual_lock_update_required
```
The next unblock action is to provide the missing host runtime requirements for
the relevant family. Providing host commands is not enough to promote a row; it
only allows the next opt-in probe gate to be considered.
For the first Python remap fixture, `axis/remap/stop-lookahead/nc_files`, the
native lifecycle evidence has been accepted and the Node/browser lifecycle
gates are complete:
```text
current_probe_status=runtime_lifecycle_probe_passed
native_evidence_status=native_pass_evidence_observed
node_inventory_gate_complete=1
browser_smoke_gate_complete=1
node_gate_status=node_inventory_promotion_gate_complete
browser_gate_status=browser_smoke_promotion_gate_complete
blocking_reason=promotion_lock_active_manual_review_required
next_unblock_action=manual_lock_review_required
```
The Python row still has `promotion_ready=0`, `execution_enabled=0`, and
`promotion_allowed=0`; the remaining blockers are `promotion_lock_active` and
`manual_lock_update_required`. This proof-chain state does not promote any of
the 53 `L4-PYTHON-REMAP` rows.
For rows that still lack native evidence, the next unblock action is to provide
the missing host runtime requirements for the relevant family. Providing host
commands is not enough to promote a row; it only allows the next opt-in probe
gate to be considered.
## Opt-in probe dispatch
The current dispatch rollup is:
```text
dispatch_status=dispatch_blocked_for_all_opt_in_native_probes
dispatch_status=dispatch_allowed_for_all_opt_in_native_probes
probe_count=3
dispatch_allowed_count=0
dispatch_blocked_count=3
dispatch_actions=skip_missing_host_requirements
dispatch_allowed_count=3
dispatch_blocked_count=0
dispatch_actions=ready_for_manual_opt_in_native_probe
execution_enabled=0
promotion_allowed=0
```
These commands remain blocked on this host:
These commands are opt-in only and must never run implicitly:
```bash
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
@@ -86,23 +111,37 @@ ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh
```
Do not run them unless the generated preflight, family readiness, dispatch
plan, and dispatch rollup all permit the specific family.
Only run them deliberately when updating native proof evidence. A passing probe
does not enable execution or promotion by itself.
## Native evidence acceptance
For rows still blocked before native evidence,
`runtime-boundary-native-evidence-acceptance-gate.tsv` currently records:
- `current_probe_status=skipped_missing_host_runtime`
- `current_probe_status=ready_disabled_by_default`
- `native_evidence_status=pending_until_native_pass`
- `skip_evidence_status=skip_valid_until_host_requirements_available`
- `skip_evidence_status=skip_contract_not_applicable_dispatch_allowed`
- `node_gate_status=blocked_until_native_pass_evidence`
- `browser_gate_status=blocked_until_node_gate_complete`
- `native_evidence_gate=blocked_until_host_requirements_available`
- `native_evidence_gate=blocked_until_native_pass_evidence`
- `evidence_acceptance_allowed=0`
A skipped opt-in probe is not a native pass. It only proves that this host is
correctly blocked until the required LinuxCNC runtime commands are available.
A disabled opt-in probe is not a native pass. It only proves that this host is
not executing the family-specific runtime probe by default.
For `L4-PYTHON-REMAP`, the same artifact records accepted native lifecycle
evidence for the stop-lookahead fixture:
- `current_probe_status=runtime_lifecycle_probe_passed`
- `native_evidence_status=native_pass_evidence_observed`
- `skip_evidence_status=native_pass_evidence_observed_skip_contract_closed`
- `node_gate_status=node_inventory_promotion_gate_complete`
- `browser_gate_status=browser_smoke_promotion_gate_complete`
- `native_evidence_gate=native_pass_evidence_accepted`
- `evidence_acceptance_allowed=1`
This is evidence acceptance only. It does not change `promotion_allowed=0`.
## Release gate
@@ -143,4 +182,5 @@ No blocked family may be promoted until all of these are true:
deliberately.
Until then, `L4-USER-M-PROCESS`, `L4-TOOL-DB`, and `L4-PYTHON-REMAP` remain
blocked, inventory-only runtime families.
locked in the runtime-boundary proof ledger with `promotion_allowed=0`; only
the inventory rows explicitly eligible for Node/WASM execution may run.

View File

@@ -16,7 +16,6 @@ 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
sim_configs_wasm_node_inventory_skip_L4_TOOL_DB=1
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
@@ -24,7 +23,7 @@ sim_configs_wasm_node_inventory_skip_UPSTREAM_DEMO=1
The current generated inventory has no skipped main-program row whose hard
block is already empty. That matters: virtual HAL maturity should not be used
as a blanket reason to reduce `skipped=131`. The next useful promotions are
as a blanket reason to reduce the skip baseline. The next useful promotions are
case promotions from Node inventory or representative coverage into browser,
diagnostics, and release evidence.
@@ -399,9 +398,9 @@ carries an inventory `baselineSummary`. The macro/load report requires that
summary to match the current generated inventory baseline:
```text
executed=28
passed=28
skipped=131
executed=29
passed=29
skipped=130
unexpectedFail=0
```

View File

@@ -29,7 +29,6 @@ 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
sim_configs_wasm_node_inventory_skip_L4_TOOL_DB=1
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
@@ -51,11 +50,11 @@ The generated artifact baseline is:
- `build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-rollup.tsv`
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.
27 rows total: 8 `evidence-ready` rows with virtual HAL source-derived
browser/release evidence, and 19 `inventory-ready` skipped main-program rows.
Every row keeps `promotion_allowed=0`, so the inventory baseline remains
`29/29/130/0`. The companion `evidence-expansion-candidates.tsv` artifact has
13 rows queued for future browser diagnostics binding, also with
14 rows queued for future browser diagnostics binding, also with
`promotion_allowed=0`.
SDK and workflow-overview release URL summaries expose the current
@@ -76,7 +75,6 @@ underscore-safe metric names. Treat these as the same baseline:
| --- | --- | ---: | --- |
| `ASSET-ONLY` | `ASSET_ONLY` | 65 | Subroutine/support asset; not a standalone browser main-program target. |
| `L4-PYTHON-REMAP` | `L4_PYTHON_REMAP` | 53 | Keep inventory-only until a LinuxCNC-owned Python-remap runtime proof exists. |
| `L4-TOOL-DB` | `L4_TOOL_DB` | 1 | Keep blocked until a LinuxCNC-owned tool database process/protocol proof exists. |
| `L4-USER-M-PROCESS` | `L4_USER_M_PROCESS` | 1 | Keep blocked until a LinuxCNC-owned external user-M process state proof exists. |
| `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. |
@@ -99,6 +97,9 @@ Do not promote these runtime families from JavaScript glue alone:
- `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

View File

@@ -52,6 +52,10 @@ Current baseline:
`wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-state-plan.tsv`
- Node Python-remap native runtime fixture-plan artifact:
`wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-fixture-plan.tsv`
- Node Python-remap bulk promotion plan artifact:
`wasm-port/build/wasm/sim-configs-inventory/python-remap-bulk-promotion-plan.tsv`
- Node Python-remap row runtime proof artifact:
`wasm-port/build/wasm/sim-configs-inventory/python-remap-row-runtime-proof.tsv`
- Node runtime-boundary contract summary artifact:
`wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-contract-summary.tsv`
- Node boundary-phase completion artifact:
@@ -235,6 +239,21 @@ Legend:
`ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1` proves the `demo.ini`
path/toplevel import, `queuebuster` callable lookup, generator return, and
first `INTERP_EXECUTE_FINISH` yield.
- `python-remap-bulk-promotion-plan.tsv`: one row per current
`L4-PYTHON-REMAP` inventory row. It records the Phase 1 blockers required
before any bulk promotion, including row runtime proof, Python module and
callable binding, NGC remap asset staging, NGC-only standalone guards,
interpreter/canonical bridges, HAL/UI/HALUI boundaries, native/WASM/browser
row pass proof, and the manual lock. It keeps every row
`execution_enabled=0` and `promotion_allowed=0`, so the current
PASS/SKIP baseline is unchanged.
- `python-remap-row-runtime-proof.tsv`: one row per current
`L4-PYTHON-REMAP` inventory row. It records the Phase 2 row-aware runtime
proof substrate: the SDK row runtime port API and row proof plan are ready,
while module staging, TOPLEVEL execution, PATH_PREPEND application, callable
binding, generator lifecycle, NGC remap staging, NGC-only standalone guards,
interpreter/canonical bridges, and native/WASM/browser row pass proof remain
pending. Every row keeps `execution_enabled=0`.
- `runtime-boundary-contract-summary.tsv`: one row per blocked runtime boundary
class. It unifies the user-M transition contract, tool DB transaction
contract, and Python runtime contract with their native-alignment artifact,
@@ -349,7 +368,7 @@ Legend:
`build/wasm/sim-configs-inventory/` must be referenced by the current
compatibility, matrix, or full-process boundary docs, so generated gate
artifacts cannot silently appear without review text. The generated WASM
inventory artifact list must remain the exact duplicate-free 55-entry
inventory artifact list must remain the exact duplicate-free 57-entry
baseline, and every token plus the fixed-count, duplicate-free, and
fetchability guards must also be listed by browser smoke.
- The same inventory check covers native generated TSV artifacts under
@@ -362,7 +381,7 @@ Legend:
compatibility, matrix, and full-process boundary docs and checking the
generated WASM inventory artifact names plus native TSV tokens against the
same completion-summary counts. The Node coverage gate also locks the two
documentation-coverage completion counts to the current `55` WASM inventory
documentation-coverage completion counts to the current `57` WASM inventory
artifacts and `8` native TSV artifacts. It verifies that browser smoke
executes the artifact documentation coverage helper, calls the completion
count-parity helper with the generated completion rows, fetches and joins the
@@ -409,23 +428,25 @@ Legend:
affected opt-in environments, and exact probe command traceability while
remaining non-executing and non-promoting.
- `runtime-boundary-host-readiness-rollup.tsv`: the aggregate host-readiness
decision for all blocked runtime families. On this host it records zero
ready families, missing `halcmd`, `halrun`, `linuxcnc`, and `milltask`, and
`host_blocked_for_all_opt_in_native_probes`.
decision for all runtime-boundary proof families. On this host it records
three ready opt-in native probes, no missing host requirements, and
`host_ready_for_all_opt_in_native_probes`.
- `runtime-boundary-opt-in-probe-dispatch-plan.tsv`: one dispatch row per
guarded native runtime probe. It turns host readiness into a dispatch action
and remains non-promoting; a dispatchable row only means the manual opt-in
native probe may be attempted on a ready host.
- `runtime-boundary-opt-in-probe-dispatch-rollup.tsv`: the aggregate dispatch
switch for blocked runtime probes. Current rows are blocked for missing host
requirements, so no opt-in native probe is dispatchable on this host.
switch for runtime-boundary probes. Current rows are dispatchable for manual
opt-in native probes, while `execution_enabled=0` and `promotion_allowed=0`
remain unchanged.
- `runtime-boundary-opt-in-probe-skip-evidence-contract.tsv`: the per-probe
skip/evidence contract. It records the skip reason, missing host
requirements, current probe status, whether native pass evidence is required
now, and keeps every skipped probe non-executing and non-promoting.
- `runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv`: the aggregate
evidence decision for skipped opt-in probes. While all probes are skipped for
missing host requirements, no native pass evidence is accepted.
evidence decision for opt-in probes. Dispatchable probes do not require skip
evidence; accepted Python remap lifecycle evidence still does not allow
promotion.
## Summary