接入虚拟HAL宏加载非主程序证据

This commit is contained in:
2026-06-18 05:15:02 +08:00
parent e263387cea
commit 506a6357c1
16 changed files with 519 additions and 14 deletions

View File

@@ -625,3 +625,78 @@ browser diagnostics proof。
main program 执行。
3. 将 macro/load fixture evidence 接入 release diagnostics validation但不改变当前
inventory baseline。
### 四、2026-06-18 Macro Load Non-Main Fixture Evidence
本批接续 Non-Qt promotion evidence完成 macro/load non-main fixture report 首批闭环。
新增实质能力:
- 新增 `VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES`
- 新增 `createVirtualHalSimConfigMacroLoadFixtureReport()`
- 输出 `linuxcnc-wasm-virtual-hal-sim-config-macro-load-fixture-report`
- 显式输出 `inventoryBaselineUnchanged === true`
- 每个 row 必须 `nonMainFixture === true`
- 每个 row 的 `targetBrowserEvidence` 必须为
`non-main-fixture-diagnostics`
- `standaloneMainViolations` 必须为空;
- source manifest 只校验 LinuxCNC source evidence不把 declared-only fixture path
误当成 manifest 文件;
- 首批 fixture
- `rose-engine-rcone-macro-load`
- `fixturePath` 为
`linuxcnc/configs/sim/axis/rose_engine/rcone.ngc`
- source evidence 包含 `rose_engine.ini`、`rcone.ngc`、`rcone_demo.ngc`
- 与 `rcone_demo.ngc` 配对作为 rose engine non-main macro/load evidence
- `external-offsets-queuebuster-macro-load`
- `fixturePath` 为
`linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc`
- source evidence 包含 `eoffsets.ini` 与 `eoffsets.ngc`
- `declaredOnly === true`,通过 `eoffsets.ini` 的 `NGCGUI_SUBFILE` 声明保留
fixture path不声明它是 standalone browser main program
- `createLinuxCncVirtualHalRuntime()` 新增:
- `getSimConfigMacroLoadFixtureReport()`
- SDK index、SDK README、browser simulation re-export 同步导出新常量和新 report API
- real simulation diagnostics artifact 新增:
- `virtualHalSimConfigMacroLoadFixtures`
- browser API `getVirtualHalSimConfigMacroLoadFixtureReport()`
- OPFS/session virtual HAL payload 新增:
- `simConfigPromotionCandidates`
- `simConfigMacroLoadFixtures`
- saved-session diagnostics nested artifact 同步携带两类 evidence
- release diagnostics validation 新增 required evidence
- `hasMacroLoadFixtures`
- `macroLoadFixturesReady`
- validation row`sim-config-macro-load-fixtures`
- 缺少 `virtualHalSimConfigMacroLoadFixtures` 时 release diagnostics validation 不再 ready
- coverage matrix 对 `axis/rose_engine/rcone.ngc` 与
`axis/external_offsets/queuebuster.ngc` 注释更新为 non-main fixture diagnostics evidence
- promotion analysis 文档新增 Macro/Load Non-Main Fixture Evidence 小节。
语义边界:
- 本批没有降低 inventory skip count
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
`unexpected_fail=0`
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
- macro/load fixture evidence 只证明 LinuxCNC-owned source/config declaration 与
virtual HAL diagnostics readiness
- `queuebuster.ngc` 只作为 `eoffsets.ini` 的 `NGCGUI_SUBFILE` declared-only fixture path
记录,不作为 manifest-backed standalone file也不作为 browser main program 执行;
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
realtime HAL、`halcmd`、motion controller
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native
HAL module ABI
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
locked
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
下一步工作建议:
1. 扩展 macro/load fixture report 到一个 UI-family non-main 案例,优先评估
`gscreen/silverdragon/macros/tool_sensor.ngc`。
2. 推进前必须确认 owning machine files、UI process declaration 和 source evidence
不能把 Python UI process emulation 纳入 virtual HAL 范围。
3. 如 UI-family 边界不清晰,先增加 negative fixture gate证明
`L4-PYTHON-REMAP` / Python UI process 相关 macro/load 不会被 macro/load fixture
report 误解锁。