完成L4-USER-M-PROCESS Web仿真接入

结论:L4-USER-M-PROCESS 已按 Web/virtual HAL 数控仿真主线完成接入,native LinuxCNC runtime 不再作为 Web 仿真阻塞;新增 text31.txt 接续剩余 77 个 SKIP 的 main-program promotion 复核。
This commit is contained in:
2026-06-20 07:59:38 +08:00
parent d0e55ba11e
commit 07869f5c69
21 changed files with 1161 additions and 51 deletions

View File

@@ -157,11 +157,28 @@ enabled with `ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1`, it starts the vendored
`millturn.ini`, runs the LinuxCNC-owned Tcl `M128`/`M129` scripts, and verifies
the resulting `ini.[xyz].*` HAL state targets before reporting
`runtime_state_probe_passed`.
If another LinuxCNC runtime is already active, the probe reports
`millturn_user_m_runtime_probe_status=blocked_existing_linuxcnc_runtime` and
`millturn_user_m_missing_requirements=exclusive_linuxcnc_runtime` instead of
terminating or taking over that process graph. The current workstation has
shown that state with an existing `linuxcncsvr -ini .../axis.ini` and
`rtapi_app load tpmod`.
The artifact keeps `execution_enabled=0` and `promotion_allowed=0`. It is not
a standalone Tcl/HAL executor and does not make `millturn` a Node/browser
representative.
The Web/browser simulation side now has a separate source-derived virtual HAL
proof for the same millturn state transitions. `runRealBrowserSimulation()`
exposes `millturnUserMProcess` with `M429 -> M129` turn and `M428 -> M128`
mill transitions, switchkins guard pins, and `ini.[xz].*` limit pin values.
Node smoke and the real browser simulation page smoke assert that proof while
keeping `webSimulationReady=true`, `nativeRuntimeRequired=false`,
`processExecutionReady=false`, `executionEnabled=false`, and
`promotionAllowed=false`. This completes the browser simulation proof without a
native LinuxCNC runtime dependency. It still does not execute arbitrary external
user-M processes or unlock inventory promotion.
`linuxcnc_millturn_user_m_boundary_probe` is the current native guard for this
evidence. It reads the LinuxCNC source `millturn.ini`, `mcodes/M128`,
`mcodes/M129`, and the `428remap`/`429remap` callers, then verifies the