项目整体完成情况与后续执行铁律 生成时间:2026-06-17 CST 本文件接替 `text16.txt`,作为后续继续推进的接续文件。后续工作优先参考 `text17.txt`;除非明确要求审计旧记录,不再回到 `text1` 到 `text16` 扩展进度。 一、当前核心完成情况 1. LinuxCNC-backed WASM 核心仍是 CNC 语义来源。 - G-code 执行、canonical event、interpreter/planner 语义仍来自 vendored LinuxCNC C/C++ 源码编译出的 WASM; - Browser/UI/SDK 只做 host boundary、文件装载、OPFS/session、virtual HAL runtime、 仿真状态桥、测试胶水和报告; - 不在 JS 中重写 G-code 解释器、planner、kinematics、tool/parameter 语义。 2. Web 数控仿真系统已经具备完整虚拟 HAL 闭环。 当前 virtual HAL 已提升为项目级 SDK/API 能力,并接入 browser simulation 页面。 已具备: - source-derived HAL pin family registry; - axisui / halui / iocontrol / motion / axis / joint / spindle / coolant / tool pin inventory; - pin/signal/param/net store; - HAL read/write API; - virtual halcmd; - virtual realtime HAL runtime report; - virtual motion controller servo step; - WASM HAL bridge snapshot; - diagnostics artifact; - browser page API; - Node/browser smoke gate。 3. 仿真级 LinuxCNC realtime HAL / halcmd / motion controller 已由 virtual HAL 替代。 已新增/确认的核心 API: - `VIRTUAL_HAL_SIMULATION_REPLACEMENT_TARGETS`: - `linuxcnc-realtime-hal`; - `halcmd`; - `motion-controller`; - `VIRTUAL_HAL_SIMULATION_RUNTIME_CAPABILITIES`: - `realtime-hal-simulation-replacement`; - `halcmd-simulation-replacement`; - `motion-controller-simulation-replacement`; - `hal-pin-signal-param-store`; - `halcmd-setp-sets-net-show-getp-gets`; - `servo-period-motion-step`; - `axis-joint-position-feedback`; - `executeVirtualHalcmd()`; - `executeVirtualHalCommand()`; - `stepVirtualHalMotion()`; - `stepVirtualHalMotionController()`; - `createVirtualHalSimulationRuntimeReport()`; - `createVirtualHalSimulationReplacementReport()`; - `createLinuxCncVirtualHalRuntime()`: - `executeHalcmd()`; - `stepMotion()`; - `stepMotionController()`; - `getSimulationRuntimeReport()`; - `getSimulationReplacementReport()`。 Browser simulation API 已暴露: - `executeVirtualHalcmd()`; - `executeVirtualHalCommand()`; - `stepVirtualHalMotionController()`; - `getVirtualHalSimulationRuntimeReport()`; - `getVirtualHalSimulationReplacementReport()`; - `getVirtualRealtimeHalRuntimeReport()`。 4. 当前 Web 仿真可满足数控系统仿真用途。 在 Web 方式下,数控系统仿真不再依赖 host LinuxCNC `halcmd`、host realtime HAL process 或 host motion process 完成仿真闭环。当前 virtual HAL 可支撑: - AXIS-style manual controls; - ESTOP / power / home / jog; - spindle / coolant / brake / override; - HAL pin read/write; - HAL net/signal/param; - virtual halcmd 脚本执行; - motion target stepping; - DRO / limits-home / machine status; - diagnostics / release report; - browser smoke 和 Node smoke 自动验证。 二、虚拟 HAL 铁律 以下规则是后续推进的硬性约束,不能为了进度绕过。 1. 虚拟 HAL 功能来源铁律。 虚拟 HAL 的功能定义、pin family、pin 名称、pin 方向、pin 类型、状态含义、行为目标、 报告口径和仿真能力边界,必须完全来源于 LinuxCNC 源程序、vendored LinuxCNC 源码、 LinuxCNC 配置、LinuxCNC 脚本或已有 LinuxCNC-backed runtime evidence。 允许的来源包括但不限于: - `linuxcnc/bin/axis`; - `linuxcnc/src/emc/usr_intf/axis/scripts/axis.py`; - `linuxcnc/src/emc/usr_intf/halui.cc`; - `linuxcnc/src/emc/task/taskclass.cc`; - `linuxcnc/src/emc/motion/motion.c`; - `linuxcnc/src/emc/motion/axis.c`; - `linuxcnc/src/emc/motion/homing.c`; - `linuxcnc/src/emc/motion/motion.h`; - vendored LinuxCNC `configs/sim`; - vendored LinuxCNC tests; - LinuxCNC-backed WASM/native probe 输出。 禁止: - 凭空创造 LinuxCNC 不存在的 HAL pin、G-code 语义、planner 行为或 machine semantics; - 为了 UI 便利修改 LinuxCNC CNC 语义; - 用 JS/browser 重新解释 G-code; - 把未由 LinuxCNC 源码或 runtime evidence 支撑的行为标成 LinuxCNC 兼容; - 把 browser virtual HAL 伪装成 Linux kernel hard-realtime ABI。 2. Web 仿真满足性铁律。 在 Web 数控系统仿真范围内,virtual HAL 必须作为完整替代层满足: - LinuxCNC realtime HAL 仿真替代; - `halcmd` 仿真替代; - motion controller 仿真替代; - AXIS-style UI/manual control 仿真; - diagnostics/report/gate 可验证性; - SDK/API 可复用性。 后续任何 Web 仿真功能,如果需要 HAL、halcmd 或 motion process,默认必须接入 project-level virtual HAL runtime,而不是引入 host process 依赖。 3. 边界表述铁律。 对外描述必须同时满足: - 可以明确说:virtual HAL 已完全满足 Web 方式数控系统仿真系统; - 可以明确说:在仿真范围内,virtual HAL 已替代 LinuxCNC realtime HAL / halcmd / motion controller; - 必须同时说明:它不是 Linux kernel hard-realtime ABI; - 必须同时说明:它不替代外部硬件驱动 ABI、native HAL module ABI; - 必须同时说明:G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。 三、当前已通过验证 最近关键验证: ```text wasm-port/tests/sdk/node/verify_sdk_surface.sh wasm-port/tests/ui/node/verify_real_simulation_programs.sh SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh git diff --check ``` 关键输出: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok real_simulation_programs_node_smoke=ok browser_real_simulation_page_smoke=ok git diff --check ok ``` 四、后续执行规则 1. 每轮开始前建议执行: ```bash git status --short git log -5 --oneline tail -n 160 text17.txt awk '/^[一二三四五六七八九十百]+、|^### / {print}' text17.txt | sort | uniq -d ``` 2. 后续记录规则: - 新进度只追加到 `text17.txt`; - 每批只追加一个新的中文编号或 `###` 标题记录; - 提交前检查标题唯一性; - 不复制 `text16.txt` 的长历史; - 不把局部重排、断言挪动、路径整理作为主目标; - 每批必须产出至少一种可复用能力、可执行 gate、可验证 workflow 或明确 runtime boundary proof。 3. 后续优先级。 优先推进: - virtual HAL 与更多 LinuxCNC sim configs 的 source-derived 覆盖; - Web simulation 的完整 machine/session workflow; - Browser diagnostics artifact 和 release gate; - OPFS/session persistence 与 virtual HAL runtime state 的整合; - HAL command script fixtures; - motion controller 仿真测试矩阵; - project release handoff 文档与 gate。 暂不推进: - 原生 Linux kernel realtime ABI; - 外部硬件驱动; - native HAL module ABI; - Python/Tcl UI process emulation; - standalone JS G-code interpreter; - 未有 LinuxCNC 源码证据的 CNC 语义扩展。 ### 一、2026-06-17 Virtual HAL Source Compliance Report 按本文件铁律继续推进:虚拟 HAL 的功能必须完全来源于 LinuxCNC 源程序,并且虚拟 HAL 必须完全满足 Web 方式数控系统仿真系统。本批把该铁律从文档声明提升为 SDK 可验证报告。 新增实质能力: - 新增 `VIRTUAL_HAL_SOURCE_DERIVED_CAPABILITIES`: - 将每个 virtual HAL simulation capability 映射到 LinuxCNC 源文件证据; - 覆盖 realtime HAL replacement、halcmd replacement、motion-controller replacement、 pin/signal/param store、halcmd verbs、load command stubs、servo-period motion step、 axis/joint feedback、spindle/coolant/tool status、interpreter HAL bridge snapshot; - `VIRTUAL_HAL_SOURCE_FILES` 新增 halcmd 来源: - `linuxcnc/src/hal/utils/halcmd.c`; - `linuxcnc/src/hal/utils/halcmd_commands.cc`; - `linuxcnc/src/hal/utils/halcmd_main.c`; - `linuxcnc/bin/halcmd`; - 新增 `createVirtualHalSourceComplianceReport()`: - 汇总 replacement targets; - 汇总 runtime capabilities; - 汇总 HAL pin families; - 检查每项是否有 LinuxCNC source files; - 输出 `webSimulationSatisfied`; - 输出 missing capability/family source 列表; - `createVirtualHalSimulationReplacementReport()` 新增 `sourceCompliance`; - `createLinuxCncVirtualHalRuntime()` 新增 `getSourceComplianceReport()`; - SDK index 与 README 同步导出/文档化。 本批验证重点: - `verify_sdk_surface.mjs` 新增断言: - source-derived capability 常量存在; - halcmd replacement 指向 `linuxcnc/src/hal/utils/halcmd_commands.cc`; - motion-controller replacement 指向 `linuxcnc/src/emc/motion/motion.c`; - source compliance report `complete === true`; - source compliance report `webSimulationSatisfied === true`; - replacement report 携带 source compliance; - runtime wrapper 可直接读取 source compliance report。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok ``` 语义边界: - 本批没有新增 CNC/G-code/planner 语义; - 本批只把现有 virtual HAL 能力与 LinuxCNC 源程序来源建立机器可读关联; - Web 仿真 HAL 满足性现在可通过 `createVirtualHalSourceComplianceReport()` 自动验证; - 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI。 ### 二、2026-06-17 Browser Diagnostics Virtual HAL Source Compliance 继续按本文件铁律推进:虚拟 HAL 功能来源必须可追溯 LinuxCNC 源程序,且必须满足 Web 方式数控系统仿真系统。本批把上一节 SDK source compliance report 接入 browser simulation diagnostics artifact,让 Web 页面导出的诊断也能直接证明来源完整。 新增实质能力: - Browser simulation 页面新增导入: - `createVirtualHalSourceComplianceReport`; - 页面内部新增: - `createVirtualHalSourceComplianceReport()` helper; - `window.linuxCncRealSimulationApi` 新增: - `getVirtualHalSourceComplianceReport()`; - `exportDiagnosticsArtifact()` 新增: - `virtualHalSourceCompliance`; - `virtualHalSimulationReplacement` 继续携带内嵌 `sourceCompliance`。 新增/扩展验证: - `real_simulation_page_smoke.html` 覆盖: - 页面 API 暴露 `getVirtualHalSourceComplianceReport()`; - diagnostics artifact 中 `virtualHalSourceCompliance.complete === true`; - diagnostics artifact 中 `virtualHalSourceCompliance.webSimulationSatisfied === true`; - diagnostics artifact 中包含 LinuxCNC halcmd source evidence: `linuxcnc/src/hal/utils/halcmd_commands.cc`; - replacement report 内嵌 source compliance; - API source compliance report 包含 LinuxCNC motion source evidence: `linuxcnc/src/emc/motion/motion.c`。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok real_simulation_programs_node_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批只把 SDK source compliance report 穿透到 browser diagnostics; - 没有新增 G-code/interpreter/planner/kinematics 语义; - Web 仿真 HAL 的来源完整性现在可通过 browser artifact 和 SDK API 双路径验证; - 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI。 ### 三、2026-06-17 Virtual HAL Sim Config Source Coverage Report 继续按本文件铁律推进:虚拟 HAL 功能完全来源于 LinuxCNC 源程序,并且必须完全满足 Web 方式数控系统仿真系统。本批把 virtual HAL 覆盖范围进一步连接到 vendored LinuxCNC `configs/sim` 代表配置,形成 SDK/browser 双路径可验证来源覆盖报告。 新增实质能力: - 新增 `VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS`: - 覆盖 AXIS foam; - 覆盖 AXIS geometry USER_M_PATH / `M110`; - 覆盖 external offsets / `M111`; - 覆盖 gladevcp probe; - 覆盖 woodpecker; - 覆盖 qtdragon / qtdragon_hd / qtvcp_screens on-abort family; - 覆盖 vismach melfa-sim / puma remap sim family; - 新增 `createVirtualHalSimConfigSourceCoverageReport()`: - 输出 sim-config target rows; - 输出每个 target 的 LinuxCNC `configs/sim` source files; - 汇总 covered virtual HAL capabilities; - 支持 `source-manifest.txt` 校验 vendored source file 是否存在; - 输出 `webSimulationSatisfied`; - `createVirtualHalSourceComplianceReport()` 新增内嵌 `simConfigSourceCoverage`; - `createVirtualHalSimulationReplacementReport()` 新增内嵌 `simConfigSourceCoverage`; - `createLinuxCncVirtualHalRuntime()` 新增 `getSimConfigSourceCoverageReport()`; - SDK index、SDK README、browser simulation re-export 同步新增该 API; - Browser simulation API 新增: - `getVirtualHalSimConfigSourceCoverageReport()`; - `exportDiagnosticsArtifact()` 新增: - `virtualHalSimConfigSourceCoverage`。 新增/扩展验证: - `verify_sdk_surface.mjs` 覆盖: - `VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS` 导出; - `createVirtualHalSimConfigSourceCoverageReport()` 导出; - `axis-foam`、`external-offsets`、`qtdragon-on-abort` 代表目标存在; - 用真实 `wasm-port/tools/source-manifest.txt` 校验所有代表 source files; - sim-config source coverage `complete === true`; - sim-config source coverage `webSimulationSatisfied === true`; - runtime wrapper 可直接读取 sim-config source coverage report; - source compliance report 内嵌 sim-config source coverage; - `real_simulation_page_smoke.html` 覆盖: - 页面 API 暴露 `getVirtualHalSimConfigSourceCoverageReport()`; - diagnostics artifact 中 `virtualHalSimConfigSourceCoverage.complete === true`; - diagnostics artifact 中包含 LinuxCNC foam sim source evidence; - API report 中包含 qtdragon on-abort sim source evidence; - replacement report 内嵌 sim-config source coverage。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok real_simulation_programs_node_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批没有新增 CNC/G-code/interpreter/planner/kinematics 语义; - 本批只把 virtual HAL 仿真覆盖与 vendored LinuxCNC `configs/sim` source evidence 建立机器可读关联; - `source-manifest.txt` 校验只证明 source asset 存在和覆盖归属,不把 browser virtual HAL 伪装成 Linux kernel hard-realtime ABI; - Web 仿真 HAL 的满足性现在同时可由 runtime capability、source compliance、browser diagnostics artifact 和 sim-config source coverage 四条路径验证。 下一步工作内容: 1. 将 `virtualHalSimConfigSourceCoverage` 接入 project release readiness / batch acceptance artifact,使 release gate 直接检查 Web virtual HAL 的 LinuxCNC sim-config 来源覆盖。 2. 增加 HAL command script fixtures,把典型 `halcmd` 脚本作为 source-derived workflow gate,覆盖 `setp`、`sets`、`net`、`show`、`getp`、`gets`、`loadrt`、`loadusr`、`addf` 和 `start/stop`。 3. 推进 OPFS/session persistence 与 virtual HAL runtime state 整合,把 HAL pin/signal/param、 motion target、machine status、diagnostics artifact 一并纳入可恢复 Web 仿真会话。 ### 四、2026-06-17 Release Artifact Virtual HAL Sim Config Source Gate 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 `virtualHalSimConfigSourceCoverage` 从 SDK/browser report 接入 release readiness 与 batch acceptance artifact,使 release gate 能直接检查 Web virtual HAL 的 LinuxCNC sim-config 来源覆盖。 新增实质能力: - `createProjectReleaseReadinessReport()` 新增: - `virtualHalSimConfigSourceCoverage`; - `virtualHalSimConfigSourceCoverageReady`; - missing reason:`virtual-hal-sim-config-source-coverage`; - summary row:`Virtual HAL sim-config source coverage`; - `createProjectReleaseReadinessArtifactValidation()` 新增强制校验: - artifact 必须携带 `linuxcnc-wasm-virtual-hal-sim-config-source-coverage-report`; - `complete === true`; - `webSimulationSatisfied === true`; - `missingTargets.length === 0`; - `missingCapabilities.length === 0`; - 必须包含 LinuxCNC foam sim source evidence; - 必须包含 qtdragon on-abort sim source evidence; - `createProjectReleaseReadinessArtifactValidationSummaryViewModel()` 新增对应 summary row; - `createProjectBatchAcceptanceWorkflow()` / `createProjectBatchAcceptanceReport()` 新增可选 `virtualHalSimConfigSourceCoverage`; - `createProjectBatchAcceptanceReportValidation()` 新增可选 coverage 校验; - `write_project_release_readiness_artifact.mjs` 生成 artifact 时读取 `wasm-port/tools/source-manifest.txt`,并写入 manifest-checked coverage report; - `write_project_batch_acceptance_artifact.mjs` 生成 artifact 时写入同一 coverage report, 并新增 accepted capability: `virtual-hal-sim-config-source-coverage`。 新增/扩展验证: - SDK surface gate 覆盖: - release readiness 默认缺少 coverage 时不 ready; - 传入 coverage 后 release readiness ready; - release readiness artifact validation 返回 `virtualHalSimConfigSourceCoverageReady === true`; - batch acceptance artifact 携带 coverage 后 checklist 为 `4/4 passed`; - release gate manifest gate 覆盖: - summary view-model 显示 virtual HAL sim-config source coverage ready; - artifact URL workflow 读取带 coverage 的 release readiness artifact; - batch acceptance artifact gate 覆盖: - JSON artifact 内含 virtual HAL sim-config source coverage; - source evidence 包含 LinuxCNC foam sim; - checklist 为 `4/4 passed`; - release readiness artifact gate 覆盖: - JSON artifact 内含 virtual HAL sim-config source coverage; - source evidence 包含 LinuxCNC foam sim 与 qtdragon on-abort sim。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok project_release_readiness_artifact_node_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - release artifact 只校验 virtual HAL 仿真来源覆盖,不把 browser virtual HAL 声称为 Linux kernel hard-realtime ABI; - Web 仿真 HAL 的 LinuxCNC `configs/sim` 来源覆盖现在成为 release readiness 与 batch acceptance artifact 的一等 gate evidence。 下一步工作内容: 1. 增加 HAL command script fixtures,把典型 `halcmd` 脚本作为 source-derived workflow gate,覆盖 `setp`、`sets`、`net`、`show`、`getp`、`gets`、`loadrt`、`loadusr`、`addf` 和 `start/stop`。 2. 推进 OPFS/session persistence 与 virtual HAL runtime state 整合,把 HAL pin/signal/param、 motion target、machine status、diagnostics artifact 一并纳入可恢复 Web 仿真会话。 3. 将 browser diagnostics artifact 与 project release readiness artifact 做 URL workflow 联动,让 release 页面能直接读取 Web 仿真诊断中的 virtual HAL source coverage。 ### 五、2026-06-17 Virtual HAL Command Script Fixtures 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把典型 `halcmd` 脚本固化为 source-derived fixture report,使 Web 仿真的 HAL command workflow 可由 SDK 和 browser diagnostics artifact 双路径验证。 新增实质能力: - 新增 `VIRTUAL_HAL_COMMAND_SCRIPT_FIXTURES`: - `pin-signal-net-show`: - `newsig`; - `setp`; - `sets`; - `net`; - `show pin`; - `show sig`; - `getp`; - `gets`; - `load-thread-start-stop`: - `loadrt`; - `loadusr`; - `addf`; - `start`; - `show function`; - `stop`; - 新增 `createVirtualHalCommandScriptFixtureReport()`: - 执行 fixture command script; - 汇总 covered halcmd actions; - 检查 missing actions; - 检查 expected output; - 输出 `webSimulationSatisfied`; - 输出 LinuxCNC halcmd source files; - `createVirtualHalSourceComplianceReport()` 新增内嵌: - `commandScriptFixtures`; - `createVirtualHalSimulationReplacementReport()` 新增内嵌: - `commandScriptFixtures`; - `createLinuxCncVirtualHalRuntime()` 新增: - `getCommandScriptFixtureReport()`; - `createVirtualHalShowRows()` 新增: - `show function`; - `show thread`; - SDK index、SDK README、browser simulation re-export 同步新增该 API; - Browser simulation API 新增: - `getVirtualHalCommandScriptFixtureReport()`; - `exportDiagnosticsArtifact()` 新增: - `virtualHalCommandScriptFixtures`。 新增/扩展验证: - `verify_sdk_surface.mjs` 覆盖: - `VIRTUAL_HAL_COMMAND_SCRIPT_FIXTURES` 导出; - `createVirtualHalCommandScriptFixtureReport()` 导出; - fixture report `complete === true`; - fixture report `webSimulationSatisfied === true`; - `missingActions.length === 0`; - `missingFixtures.length === 0`; - source evidence 包含 `linuxcnc/src/hal/utils/halcmd_commands.cc`; - covered actions 覆盖: `setp`、`sets`、`net`、`show`、`getp`、`gets`、`loadrt`、`loadusr`、`addf`、 `start`、`stop`; - runtime wrapper 可读取 command fixture report; - replacement report 内嵌 command fixture report; - source compliance report 内嵌 command fixture report; - `real_simulation_page_smoke.html` 覆盖: - 页面 API 暴露 `getVirtualHalCommandScriptFixtureReport()`; - diagnostics artifact 中 `virtualHalCommandScriptFixtures.complete === true`; - diagnostics artifact 中 covered actions 包含 `loadusr`; - API report 包含 `setp`、`stop` 和 LinuxCNC halcmd source evidence; - replacement/source compliance report 内嵌 command fixture report。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - 本批只把 Web virtual HAL 的 `halcmd` workflow 与 LinuxCNC halcmd source evidence 建立可执行 fixture 关联; - `loadrt`、`loadusr`、`addf`、`start`、`stop` 在 browser virtual HAL 中仍是 Web 仿真 workflow 的可记录替代层,不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - Web 仿真 HAL 的满足性现在可由 runtime capability、source compliance、sim-config source coverage、release artifact gate、command script fixture report 和 browser diagnostics artifact 共同验证。 下一步工作内容: 1. 推进 OPFS/session persistence 与 virtual HAL runtime state 整合,把 HAL pin/signal/param、 motion target、machine status、diagnostics artifact 一并纳入可恢复 Web 仿真会话。 2. 将 browser diagnostics artifact 与 project release readiness artifact 做 URL workflow 联动,让 release 页面能直接读取 Web 仿真诊断中的 virtual HAL source coverage。 3. 扩展 motion controller 仿真测试矩阵,把多轴 target、servo period、distance-to-go、 in-position 与 HAL pin feedback 的关系做成 source-derived report/gate。 ### 六、2026-06-17 OPFS Session Virtual HAL Runtime State Persistence 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 virtual HAL runtime state 接入 OPFS/session snapshot payload,使 HAL pin/signal/param、motion target、 machine status、diagnostics/source reports 能随 Web 仿真会话保存和恢复。 新增实质能力: - `runtime/opfs/snapshot-store.js` 新增: - `createVirtualHalSessionPayload()`; - `restoreVirtualHalStateFromSessionSnapshot()`; - `createMachineSessionSnapshotPayload()` 新增可选: - `virtualHal`; - `virtualHalState`; - `virtualHalOptions`; - virtual HAL session payload 内容包括: - `state`:完整 browser virtual HAL state; - `diagnostics`:simulation replacement report; - `sourceCompliance`:LinuxCNC source compliance report; - `simConfigSourceCoverage`:LinuxCNC `configs/sim` source coverage report; - `commandScriptFixtures`:LinuxCNC halcmd source-derived command fixture report; - snapshot validation 新增 virtual HAL payload 校验: - state source 必须为 `browser-virtual-hal`; - source compliance 必须 complete; - sim-config source coverage 必须 complete; - command script fixtures 必须 complete; - SDK index 与 README 同步导出: - `createVirtualHalSessionPayload()`; - `restoreVirtualHalStateFromSessionSnapshot()`。 新增/扩展验证: - `verify_file_service.mjs` 覆盖: - 通过 virtual halcmd 建立 signal/net/pin/component/thread state; - `createVirtualHalSessionPayload()` 写入 HAL signal/net/loadusr state; - payload 内嵌 source compliance、sim-config source coverage、command script fixtures; - `createMachineSessionSnapshotPayload()` 可携带 virtual HAL payload; - `createSessionSnapshot()` 可封装 virtual HAL session payload; - `restoreVirtualHalStateFromSessionSnapshot()` 可恢复 signal/net/loadusr state; - `saveSessionSnapshot()` / `loadSessionSnapshot()` 可 OPFS roundtrip virtual HAL state; - `ini_panel_smoke.html` 覆盖 browser OPFS: - browser 侧创建 virtual HAL state; - browser 侧保存 virtual HAL session snapshot; - browser 侧恢复 HAL net 与 `loadusr halui` state; - `verify_sdk_surface.mjs` 覆盖: - SDK index/README 导出新 API; - virtual HAL session payload 包含 complete source reports; - session snapshot 可恢复 HAL net。 关键验证: ```text opfs_file_service_node_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - OPFS/session snapshot 只保存和恢复 Web virtual HAL 仿真状态与来源报告; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - Web 仿真 HAL 的满足性现在可以随 OPFS/session snapshot 持久化,并在恢复后继续由 source compliance、sim-config source coverage、command script fixture report 验证。 下一步工作内容: 1. 将 browser diagnostics artifact 与 project release readiness artifact 做 URL workflow 联动,让 release 页面能直接读取 Web 仿真诊断中的 virtual HAL source coverage。 2. 扩展 motion controller 仿真测试矩阵,把多轴 target、servo period、distance-to-go、 in-position 与 HAL pin feedback 的关系做成 source-derived report/gate。 3. 将 virtual HAL session payload 接入 real simulation page 的显式保存/恢复按钮或 API, 让用户可直接保存和恢复完整 Web CNC 仿真会话。 ### 七、2026-06-17 Browser Diagnostics Artifact Release URL Workflow 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 browser diagnostics artifact 与 project release readiness artifact 做成 URL workflow 联动,使 release 工作流可以直接读取 Web 仿真诊断中的 virtual HAL source coverage、source compliance 和 halcmd command fixture evidence。 新增实质能力: - `project-release-readiness.js` 新增: - `createProjectReleaseBrowserDiagnosticsArtifactValidation()`; - 对 real browser simulation diagnostics artifact 的 release 级验证; - browser diagnostics artifact validation 覆盖: - `apiName === "real-browser-simulation-diagnostics-artifact"`; - `virtualHal.source === "browser-virtual-hal"`; - `virtualHalSimulationReplacement.replacesHostRuntimeForSimulation === true`; - `virtualHalSourceCompliance.complete === true`; - `virtualHalSimConfigSourceCoverage.complete === true`; - `virtualHalCommandScriptFixtures.complete === true`; - LinuxCNC halcmd source evidence 包含 `linuxcnc/src/hal/utils/halcmd_commands.cc`; - LinuxCNC sim config source evidence 包含 `linuxcnc/configs/sim/axis/foam/axis_foam.ini` 与 `linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc`; - `loadProjectReleaseReadinessArtifactUrlWorkflow()` 新增可选: - `diagnosticsUrl`; - `diagnosticsFetched`; - `diagnosticsHttpStatus`; - `diagnosticsFetchError`; - `diagnosticsValidation`; - URL workflow 现在在传入 `diagnosticsUrl` 时同时验证: - project release readiness artifact; - browser real simulation diagnostics artifact; - diagnostics artifact 中的 virtual HAL source coverage; - URL workflow summary/action-plan 新增 browser diagnostics 状态; - `verify_project_release_gate_manifest.mjs` 同步接受未请求 diagnostics URL 时的 `diagnostics-workflow: not requested` 合约; - SDK index 已导出 `createProjectReleaseBrowserDiagnosticsArtifactValidation()`。 新增/扩展验证: - `verify_project_release_artifact_url_workflow.mjs` 覆盖: - 构造 browser diagnostics artifact; - 验证 diagnostics artifact release validation `ready === true`; - URL workflow 同时 fetch release artifact 与 diagnostics artifact; - `diagnosticsFetched === true`; - `diagnosticsHttpStatus === 200`; - `diagnosticsValidation.ready === true`; - summary view model 输出 `browser-diagnostics: ready`; - `verify_sdk_surface.sh` 聚合覆盖: - SDK surface; - release gate manifest; - release artifact URL workflow; - batch acceptance workflow; - batch acceptance artifact; - `verify_real_simulation_browser.sh` 覆盖: - real simulation page diagnostics artifact 仍可导出完整 virtual HAL source reports; - 页面 browser API 未因 release URL workflow 联动发生退化。 关键验证: ```text project_release_artifact_url_workflow_node_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok project_release_readiness_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - browser diagnostics artifact 只作为 Web virtual HAL 仿真来源与满足性的 release evidence; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - Web 仿真 HAL 的满足性现在可由 release artifact URL workflow 联动验证,结论仍限定在 Web 方式数控系统仿真范围内。 下一步工作内容: 1. 扩展 motion controller 仿真测试矩阵,把多轴 target、servo period、distance-to-go、 in-position 与 HAL pin feedback 的关系做成 source-derived report/gate。 2. 将 virtual HAL session payload 接入 real simulation page 的显式保存/恢复按钮或 API, 让用户可直接保存和恢复完整 Web CNC 仿真会话。 3. 将 browser diagnostics artifact 的 URL workflow 接入 ini-panel workflow overview 页面, 让 release readiness 页面能显示 browser diagnostics validation rows。 ### 八、2026-06-17 Virtual HAL Motion Controller Matrix Report 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 motion controller 仿真测试矩阵提升为 SDK/API/report/gate 能力,使多轴 target、servo period、distance-to-go、 in-position 与 HAL pin feedback 的关系可由 LinuxCNC motion source evidence 验证。 新增实质能力: - 新增 `VIRTUAL_HAL_MOTION_CONTROLLER_MATRIX_FIXTURES`: - `x-single-axis-servo-dtg`: - 单轴 X target; - servo period `dt`; - velocity limit; - `motion.distance-to-go`; - `motion.in-position`; - `axis.x.pos-cmd`; - `joint.0.pos-fb`; - `xyz-multi-axis-in-position`: - XYZ 多轴 target; - 多周期 servo stepping; - final `in-position`; - axis feedback 与 joint feedback 一致性; - `abc-rotary-feedback`: - ABC rotary axes target; - rotary axis command/feedback; - joint 3/4/5 feedback; - 新增 `createVirtualHalMotionControllerMatrixReport()`: - 执行每个 motion matrix fixture; - 读取 virtual HAL WASM bridge snapshot; - 验证 required motion/axis/joint pins; - 验证 `distanceToGo`; - 验证 `inPosition`; - 验证 axis command、joint feedback、HALUI feedback 一致; - 输出 `webSimulationSatisfied`; - 输出 LinuxCNC motion source files; - `createVirtualHalSourceComplianceReport()` 新增内嵌: - `motionControllerMatrix`; - source compliance complete 现在要求 motion matrix complete; - `createVirtualHalSimulationReplacementReport()` 新增内嵌: - `motionControllerMatrix`; - replacement ready 现在要求 motion matrix complete; - `createLinuxCncVirtualHalRuntime()` 新增: - `getMotionControllerMatrixReport()`; - SDK index、SDK README、browser simulation re-export 同步新增: - `VIRTUAL_HAL_MOTION_CONTROLLER_MATRIX_FIXTURES`; - `createVirtualHalMotionControllerMatrixReport()`; - Browser simulation API 新增: - `getVirtualHalMotionControllerMatrixReport()`; - `exportDiagnosticsArtifact()` 新增: - `virtualHalMotionControllerMatrix`; - `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 新增 release 级校验: - diagnostics artifact 必须包含 complete motion controller matrix; - required pins 必须包含 `motion.distance-to-go` 与 `motion.in-position`; - source evidence 必须包含 `linuxcnc/src/emc/motion/motion.c` 与 `linuxcnc/src/emc/motion/axis.c`。 新增/扩展验证: - `verify_sdk_surface.mjs` 覆盖: - SDK index/README 导出新常量与新 report API; - motion matrix report `complete === true`; - motion matrix report `webSimulationSatisfied === true`; - missing fixtures 为 0; - source evidence 包含 LinuxCNC motion/axis source; - required pins 包含 `motion.distance-to-go` 与 `motion.in-position`; - `xyz-multi-axis-in-position` fixture 达到 `inPosition === true`; - 每个 axis/joint/HALUI feedback row 均 matched; - runtime wrapper 可读取 motion matrix report; - replacement/source compliance report 内嵌 motion matrix; - browser diagnostics artifact validation 要求 motion matrix ready; - `real_simulation_page_smoke.html` 覆盖: - 页面 API 暴露 `getVirtualHalMotionControllerMatrixReport()`; - diagnostics artifact 中 `virtualHalMotionControllerMatrix.complete === true`; - diagnostics artifact 中 source evidence 包含 LinuxCNC motion source; - browser API matrix report 包含 motion pins、source evidence 和多轴 in-position fixture; - replacement/source compliance report 内嵌 motion matrix。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok project_release_readiness_artifact_node_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - motion matrix 只验证 Web virtual HAL motion controller 的仿真替代状态与 HAL pin feedback,不把 browser virtual HAL 声称为 Linux kernel hard-realtime ABI; - `stepVirtualHalMotionController()` 仍是 Web 仿真范围内的 deterministic servo-period stepping,不替代外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。 下一步工作内容: 1. 将 virtual HAL session payload 接入 real simulation page 的显式保存/恢复按钮或 API, 让用户可直接保存和恢复完整 Web CNC 仿真会话。 2. 将 browser diagnostics artifact 的 URL workflow 接入 ini-panel workflow overview 页面, 让 release readiness 页面能显示 browser diagnostics validation rows。 3. 扩展 motion matrix 与 LinuxCNC sim configs 的关联,把 external-offsets、QtDragon multi-joint、vismach remap sims 的 motion source evidence 显式映射到 matrix fixture rows。 ### 九、2026-06-17 Real Simulation Virtual HAL Session Save/Restore 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 virtual HAL session payload 接入 real simulation page 的显式保存/恢复按钮与 browser API,让用户可在 Web CNC 仿真页面直接保存和恢复完整 virtual HAL runtime state。 新增实质能力: - `runtime/opfs/snapshot-store.js` 扩展 virtual HAL session payload: - 新增 `motionControllerMatrix`; - payload validation 要求 motion controller matrix complete; - `createVirtualHalSessionPayload()` 默认生成 motion matrix evidence; - real simulation page 新增 Machine Session 面板控件: - `Save HAL Session`; - `Restore HAL Session`; - `Virtual HAL session` 状态行; - Browser simulation API 新增: - `getVirtualHalSessionState()`; - `saveVirtualHalSessionSnapshot(options)`; - `restoreVirtualHalSessionSnapshot(options)`; - 保存流程: - 使用当前 `virtualHalState` 创建 `createVirtualHalSessionPayload()`; - 使用 `createMachineSessionSnapshotPayload()` 封装 machine/session payload; - 使用 `saveSessionSnapshot()` 写入 OPFS; - snapshot metadata 记录 `real-browser-simulation-virtual-hal-session` 与 HAL revision; - 恢复流程: - 使用 `loadSessionSnapshot()` 读取 OPFS snapshot; - 使用 `restoreVirtualHalStateFromSessionSnapshot()` 恢复 virtual HAL state; - 重新渲染 HAL machine state、statusbar 和 session 状态; - SDK README OPFS/session persistence section 同步说明: - `createVirtualHalSessionPayload()`; - `restoreVirtualHalStateFromSessionSnapshot()`; - payload 包含 source compliance、sim-config coverage、halcmd fixtures、motion controller matrix evidence。 新增/扩展验证: - `verify_file_service.mjs` 覆盖: - virtual HAL session payload 内含 motion controller matrix complete; - machine session snapshot payload 内含 motion matrix LinuxCNC source evidence; - `verify_sdk_surface.mjs` 覆盖: - virtual HAL session payload 内含 motion controller matrix complete; - `real_simulation_page_smoke.html` 覆盖: - 页面存在显式保存/恢复按钮; - browser API 暴露保存/恢复方法; - 保存当前 HAL net、loaded component、function、source reports、motion matrix; - 保存后修改 HAL pin 与 loadusr state; - 恢复后 `axis.x.pos-cmd` 回到保存值; - 恢复后临时 `post-save-component` 不再存在; - 恢复后 `motion-controller` function 仍存在; - DOM/body dataset 显示 saved/restored 状态。 关键验证: ```text opfs_file_service_node_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - session snapshot 只保存和恢复 Web virtual HAL runtime state、source reports 和 diagnostics evidence; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - Web 仿真 HAL 的满足性现在可在 real simulation page 中由用户显式保存、恢复并继续验证。 下一步工作内容: 1. 将 browser diagnostics artifact 的 URL workflow 接入 ini-panel workflow overview 页面, 让 release readiness 页面能显示 browser diagnostics validation rows。 2. 扩展 motion matrix 与 LinuxCNC sim configs 的关联,把 external-offsets、QtDragon multi-joint、vismach remap sims 的 motion source evidence 显式映射到 matrix fixture rows。 3. 将 real simulation page 的 virtual HAL session snapshot 与 release diagnostics artifact 做联动,使保存的 Web CNC 仿真会话可直接输出 release-ready diagnostics evidence。 ### 十、2026-06-17 INI Panel Browser Diagnostics URL Workflow Rows 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 browser diagnostics artifact 的 URL workflow 接入 ini-panel workflow overview,使 release readiness 页面可显示 browser diagnostics validation rows,并能把 Web 仿真的 virtual HAL source coverage、command fixtures、motion matrix evidence 纳入 release artifact URL workflow。 新增实质能力: - `loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl()` 新增: - `diagnosticsUrl` 参数; - `diagnosticsHttpStatus`; - `diagnosticsError`; - `diagnosticsValidation`; - `urlWorkflow`; - ini-panel release artifact URL workflow 现在复用 SDK `loadProjectReleaseReadinessArtifactUrlWorkflow()`: - 同时 fetch project release readiness artifact; - 可选 fetch browser real simulation diagnostics artifact; - 使用 release 级 diagnostics validation; - 保留原 ini-panel artifact display/mount workflow; - workflow summary rows 新增: - `diagnostics-url`; - `browser-diagnostics`; - `diagnostics-status`; - render/mount workflow rows 现在能显示 browser diagnostics validation 结果; - SDK `createProjectReleaseReadinessArtifactJsonWorkflow()` 保留 parsed artifact object, 供 ini-panel URL workflow 继续生成原有 gate execution summary 与 artifact display。 新增/扩展验证: - `verify_ini_panel_ui_shell.mjs` 覆盖: - 构造 browser diagnostics artifact; - URL workflow 同时传入 release artifact URL 与 diagnostics URL; - diagnostics HTTP status 为 200; - diagnostics validation ready; - summary rows 中 `browser-diagnostics` 为 ready; - render rows 包含 `browser-diagnostics`; - URL workflow render/mount row count 包含 diagnostics rows; - `ini_panel_workflow_overview_smoke.html` 覆盖: - workflow overview browser API 调用 diagnostics URL workflow; - browser diagnostics artifact validation ready; - render rows 包含 browser diagnostics row; - workflow overview DOM mount 成功; - `verify_project_release_artifact_url_workflow.sh` 继续覆盖 SDK URL workflow; - `verify_sdk_surface.sh` 聚合覆盖 SDK/API surface。 关键验证: ```text ini_panel_ui_shell_node_smoke=ok browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok project_release_artifact_url_workflow_node_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics 语义; - ini-panel workflow overview 只显示和验证 browser diagnostics artifact 中已有的 virtual HAL source evidence; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - Web 仿真 HAL 的满足性现在可以在 release readiness 页面被直接查看和验证。 下一步工作内容: 1. 扩展 motion matrix 与 LinuxCNC sim configs 的关联,把 external-offsets、QtDragon multi-joint、vismach remap sims 的 motion source evidence 显式映射到 matrix fixture rows。 2. 将 real simulation page 的 virtual HAL session snapshot 与 release diagnostics artifact 做联动,使保存的 Web CNC 仿真会话可直接输出 release-ready diagnostics evidence。 3. 将 ini-panel workflow overview 的 diagnostics URL workflow 接入固定页面表单/按钮, 让用户可在页面上输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。 ### 十一、2026-06-17 Motion Matrix Sim Config Source Evidence 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 motion controller matrix 与 LinuxCNC `configs/sim` 证据建立显式关联,使 external-offsets、 QtDragon multi-joint、vismach remap sims 的 source evidence 可在 SDK、browser diagnostics artifact 和 release validation 中被直接验证。 新增实质能力: - `VIRTUAL_HAL_MOTION_CONTROLLER_MATRIX_FIXTURES` 新增 `simConfigTargets`: - `x-single-axis-servo-dtg` 映射 `external-offsets`; - `xyz-multi-axis-in-position` 映射 `qtdragon-on-abort`; - `abc-rotary-feedback` 映射 `vismach-remap-sims`; - `createVirtualHalMotionControllerMatrixReport()` 新增: - `simConfigTargets`; - `simConfigEvidenceRows`; - `simConfigSourceFiles`; - `missingSimConfigTargets`; - motion matrix complete 判定现在同时要求: - fixture 本身 motion/pin feedback 完整; - fixture 映射的 LinuxCNC sim config source target 存在; - `missingSimConfigTargets.length === 0`; - `createVirtualHalSourceComplianceReport()` 的 `sourceFiles` 汇总 now 包含 motion matrix 关联的 sim config source files; - `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 加严: - 必须包含 `external-offsets`、`qtdragon-on-abort`、`vismach-remap-sims` targets; - 必须包含 `dynamic_offsets.ini`、`qtdragon_xyyz.ini`、`puma.ini` 具体 LinuxCNC sim config source files; - SDK README 同步说明 motion controller matrix rows 已携带 LinuxCNC `configs/sim` evidence。 新增/扩展验证: - `verify_sdk_surface.mjs` 覆盖: - matrix report 包含三个 sim config targets; - matrix report 包含 external offsets、QtDragon multi-joint、vismach puma source files; - `missingSimConfigTargets.length === 0`; - fixture row 与 sim config target 的映射存在; - browser diagnostics artifact validation 的 source files 包含三类 sim config evidence; - `real_simulation_page_smoke.html` 覆盖: - browser API `getVirtualHalMotionControllerMatrixReport()` 输出三类 sim config targets; - diagnostics/matrix 输出三类具体 LinuxCNC sim config source files; - release diagnostics validation 现在不能只靠 target 名称通过,必须携带具体 LinuxCNC sim config source evidence。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - external-offsets、QtDragon multi-joint、vismach remap sims 只作为 LinuxCNC-owned sim config source evidence 映射到 virtual HAL motion matrix; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM; - Web 方式数控系统仿真所需 HAL、halcmd、motion controller 替代层继续由 source-derived virtual HAL 满足。 下一步工作内容: 1. 将 real simulation page 的 virtual HAL session snapshot 与 release diagnostics artifact 做联动,使保存的 Web CNC 仿真会话可直接输出 release-ready diagnostics evidence。 2. 将 ini-panel workflow overview 的 diagnostics URL workflow 接入固定页面表单/按钮, 让用户可在页面上输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。 3. 为 motion matrix 增加 manifest-backed source check,把 matrix 关联的 sim config source files 与 vendored LinuxCNC manifest 做显式一致性验证。 ### 十二、2026-06-17 Virtual HAL Session Diagnostics Artifact Linkage 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 real simulation page 保存的 virtual HAL session snapshot 与 release diagnostics artifact 做联动, 使保存后的 Web CNC 仿真会话可直接输出 release-ready diagnostics evidence。 新增实质能力: - real simulation page 新增 session diagnostics artifact builder: - `createVirtualHalSessionDiagnosticsArtifact(snapshot)`; - 从保存的 session snapshot 读取 `payload.virtualHal`; - 复用 snapshot 中的 virtual HAL state、simulation replacement、source compliance、 sim-config coverage、halcmd fixtures、motion controller matrix; - 使用 `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 对 snapshot 派生 diagnostics artifact 做 release 级验证; - `exportDiagnosticsArtifact()` 新增: - `virtualHalSessionDiagnostics`; - 未保存 session 时返回 `phase: "not-saved"` 和 missing reason; - 已保存或恢复 session 后返回 `phase: "release-ready"`; - Browser simulation API 新增: - `exportVirtualHalSessionDiagnosticsArtifact()`; - `saveVirtualHalSessionSnapshot()` 返回值新增: - `releaseDiagnosticsReady`; - `sessionDiagnostics`; - `restoreVirtualHalSessionSnapshot()` 返回值新增: - `releaseDiagnosticsReady`; - `sessionDiagnostics`; - AXIS simulation docs 同步公开 `exportVirtualHalSessionDiagnosticsArtifact()`,并说明 saved virtual HAL session snapshot 会进入 browser diagnostics artifact,形成 release-ready evidence。 新增/扩展验证: - `real_simulation_page_smoke.html` 覆盖: - 页面 API 暴露 `exportVirtualHalSessionDiagnosticsArtifact()`; - 保存 virtual HAL session 后 `releaseDiagnosticsReady === true`; - 保存返回的 `sessionDiagnostics.validation.ready === true`; - 保存返回的 session diagnostics 包含 complete motion controller matrix; - `exportVirtualHalSessionDiagnosticsArtifact()` 输出 `phase === "release-ready"`; - `exportDiagnosticsArtifact()` 内嵌 `virtualHalSessionDiagnostics.ready === true`; - restore 后 session diagnostics 仍保持 release-ready; - `verify_axis_style_simulation_docs.mjs` 覆盖新 API 文档契约; - `verify_sdk_surface.sh` 继续覆盖 release diagnostics validation 与 virtual HAL source evidence。 关键验证: ```text axis_style_simulation_docs_node_smoke=ok browser_real_simulation_page_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - session diagnostics artifact 只复用保存时已有的 source-derived virtual HAL reports; - release validation 只验证 Web 仿真所需 HAL、halcmd、motion controller evidence; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。 下一步工作内容: 1. 将 ini-panel workflow overview 的 diagnostics URL workflow 接入固定页面表单/按钮, 让用户可在页面上输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。 2. 为 motion matrix 增加 manifest-backed source check,把 matrix 关联的 sim config source files 与 vendored LinuxCNC manifest 做显式一致性验证。 3. 将 virtual HAL session diagnostics artifact 纳入 release artifact URL workflow 的示例 fixtures,使 URL workflow 同时覆盖 live diagnostics 与 saved-session diagnostics。 ### 十三、2026-06-17 INI Workflow Overview URL Form 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 ini-panel workflow overview 的 diagnostics URL workflow 接入固定页面表单和按钮,让用户可在页面上 输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。 新增实质能力: - `workflow-overview.html` 新增固定 URL workflow 表单: - Release artifact URL 输入; - Browser diagnostics URL 输入; - `Run URL Workflow` 按钮; - release artifact URL workflow 状态区; - release artifact URL workflow rows 区; - 页面脚本新增: - `runWorkflowOverviewReleaseReadinessArtifactUrlForm(options)`; - 从页面输入框读取 artifact URL 与 diagnostics URL; - 复用 `loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl()`; - 复用 release URL workflow summary/render/mount helpers; - 写入 `document.body.dataset.releaseArtifactUrlWorkflowPhase`; - 写入 `document.body.dataset.releaseArtifactUrlWorkflowReady`; - Browser API 新增: - `runWorkflowOverviewReleaseReadinessArtifactUrlForm()`; - 表单输入使用 `type="text"` 与 `inputmode="url"`,同时支持相对 fixture 路径和真实 HTTP/HTTPS URL。 新增/扩展验证: - `ini_panel_workflow_overview_smoke.html` 覆盖: - workflow overview API 暴露 `runWorkflowOverviewReleaseReadinessArtifactUrlForm()`; - 页面固定输入框可写入 release artifact URL 与 diagnostics URL; - 表单 runner 可复用 diagnostics artifact fetch stub; - 表单 runner 返回 `workflow.ready === true`; - 表单 runner 返回 `mountResult.ready === true`; - 页面 body dataset 标记 URL workflow ready; - 页面固定 workflow rows 中 `browser-diagnostics` 行显示 `ready`; - `verify_ini_panel_browser.sh` 聚合确认 workflow overview 页面、launch、control、 shell integration 仍全部通过; - `verify_ui_node_smokes.sh` 聚合确认 ui-shell/API manifest/docs 不回归。 关键验证: ```text browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok ini_panel_ui_shell_node_smoke=ok ini_panel_shell_integration_manifest_node_smoke=ok ini_panel_launch_api_manifest_node_smoke=ok ini_panel_entry_docs_node_smoke=ok ui_node_smokes=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - workflow overview 表单只加载并验证 release artifact 与 browser diagnostics artifact; - browser diagnostics artifact 中的 virtual HAL evidence 仍来自 source-derived virtual HAL reports; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。 下一步工作内容: 1. 为 motion matrix 增加 manifest-backed source check,把 matrix 关联的 sim config source files 与 vendored LinuxCNC manifest 做显式一致性验证。 2. 将 virtual HAL session diagnostics artifact 纳入 release artifact URL workflow 的示例 fixtures,使 URL workflow 同时覆盖 live diagnostics 与 saved-session diagnostics。 3. 将 workflow overview 固定 URL 表单的 action-plan 与 gate execution summary rows 同屏渲染,便于用户看到 URL workflow 的下一步命令和 gate evidence。 ### 十四、2026-06-17 Motion Matrix Manifest-Backed Source Check 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,为 motion controller matrix 增加 manifest-backed source check,把 matrix 关联的 LinuxCNC `configs/sim` source files 与 vendored LinuxCNC manifest 做显式一致性验证。 新增实质能力: - `createVirtualHalMotionControllerMatrixReport()` 新增 manifest 输入: - `manifestText`; - `manifestEntries`; - motion matrix report 新增: - `manifestChecked`; - `missingManifestFiles`; - row-level `manifestChecked`; - row-level `missingManifestFiles`; - summary row:`Sim config manifest check`; - 当调用方提供 manifest 时,matrix 关联的 sim config source files 必须全部存在于 vendored LinuxCNC manifest,否则 matrix `complete` 与 `webSimulationSatisfied` 不能通过; - `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 加严: - browser diagnostics artifact 中的 `virtualHalMotionControllerMatrix` 必须 `manifestChecked === true`; - `missingManifestFiles.length === 0`; - real simulation page 现在用 `VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS` 派生 manifest entries,并将其传入: - live diagnostics artifact; - Browser API `getVirtualHalMotionControllerMatrixReport()`; - saved virtual HAL session snapshot; - saved-session release diagnostics artifact; - SDK README 同步说明 motion matrix 支持 manifest-backed sim-config source check。 新增/扩展验证: - `verify_sdk_surface.mjs` 覆盖: - 未提供 manifest 时 matrix 仍可作为 source-derived motion fixture report; - 提供真实 `wasm-port/tools/source-manifest.txt` 后 `manifestChecked === true`; - `missingManifestFiles.length === 0`; - 所有 matrix rows 均完成 row-level manifest check; - release browser diagnostics validation 必须使用 manifest-checked matrix 才 ready; - `real_simulation_page_smoke.html` 覆盖: - browser API 返回 manifest-checked matrix; - diagnostics matrix `missingManifestFiles.length === 0`; - 每个 matrix row 的 manifest check 均通过; - `ini_panel_workflow_overview_smoke.html` 与 `verify_ini_panel_ui_shell.mjs` 同步使用 manifest-checked diagnostics fixture,保证 URL workflow 示例 artifact 与真实 Web diagnostics artifact 规则一致。 关键验证: ```text sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok browser_real_simulation_page_smoke=ok ini_panel_ui_shell_node_smoke=ok ui_node_smokes=ok browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - manifest-backed check 只验证 motion matrix 关联的 LinuxCNC `configs/sim` source files 存在于 vendored manifest; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM; - Web 方式数控系统仿真所需 HAL、halcmd、motion controller 替代层继续由 source-derived virtual HAL 满足。 下一步工作内容: 1. 将 virtual HAL session diagnostics artifact 纳入 release artifact URL workflow 的示例 fixtures,使 URL workflow 同时覆盖 live diagnostics 与 saved-session diagnostics。 2. 将 workflow overview 固定 URL 表单的 action-plan 与 gate execution summary rows 同屏渲染,便于用户看到 URL workflow 的下一步命令和 gate evidence。 3. 将 manifest-backed motion matrix check 接入 project release readiness / batch acceptance artifact,使 release gate 不仅检查 sim-config source coverage,也检查 motion matrix 关联 source files 的 manifest 一致性。 ### 十五、2026-06-17 Release URL Workflow Saved-Session Diagnostics 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 saved-session diagnostics artifact 纳入 release artifact URL workflow 示例 fixtures,使 URL workflow 同时覆盖 live diagnostics 与 saved virtual HAL session diagnostics。 新增实质能力: - `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 新增 saved-session diagnostics 识别: - `hasSessionDiagnostics`; - `sessionDiagnosticsReady`; - validation rows 新增 `session-diagnostics`; - 当 browser diagnostics artifact 携带 `virtualHalSessionDiagnostics` 时,release validation 会检查: - session diagnostics API 名称; - `ready === true`; - `phase === "release-ready"`; - 内嵌 validation ready; - 内嵌 diagnostics artifact 为 real browser diagnostics artifact; - 内嵌 source compliance complete; - 内嵌 motion matrix manifest-backed check ready; - 当 browser diagnostics artifact 尚未携带 saved-session diagnostics 时,live diagnostics validation 仍可通过,避免未保存会话的页面初始诊断被误判 blocked; - `createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel()` 新增 summary row: - `saved-session-diagnostics`; - INI panel workflow overview URL workflow summary 同步新增: - `saved-session-diagnostics`; - URL workflow 示例 fixtures 现在同时包含: - live virtual HAL diagnostics evidence; - saved virtual HAL session diagnostics evidence; - manifest-checked motion matrix evidence。 新增/扩展验证: - `verify_project_release_artifact_url_workflow.mjs` 覆盖: - diagnostics artifact 携带 `virtualHalSessionDiagnostics`; - URL workflow `diagnosticsValidation.hasSessionDiagnostics === true`; - URL workflow `diagnosticsValidation.sessionDiagnosticsReady === true`; - summary row `saved-session-diagnostics` 显示 `ready`; - `verify_sdk_surface.mjs` 覆盖: - browser diagnostics validation 可识别 saved-session diagnostics; - session diagnostics ready 后整体 validation ready; - `verify_ini_panel_ui_shell.mjs` 覆盖: - INI panel URL workflow diagnostics validation 识别 saved-session evidence; - summary/render rows 中包含 `saved-session-diagnostics`; - `ini_panel_workflow_overview_smoke.html` 覆盖: - 固定 URL workflow 页面使用包含 saved-session diagnostics 的 browser diagnostics fixture; - 页面 URL workflow validation 中 saved-session diagnostics ready; - DOM render rows 包含 saved-session diagnostics row。 关键验证: ```text project_release_artifact_url_workflow_node_smoke=ok project_release_gate_manifest_node_smoke=ok sdk_surface_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok ini_panel_ui_shell_node_smoke=ok ui_node_smokes=ok browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok browser_real_simulation_page_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - saved-session diagnostics artifact 只复用保存时已有的 source-derived virtual HAL reports; - URL workflow 只验证 browser diagnostics evidence 与 saved-session diagnostics evidence,不把 browser virtual HAL 声称为 Linux kernel hard-realtime ABI; - virtual HAL 仍不声称提供外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM; - Web 方式数控系统仿真所需 HAL、halcmd、motion controller 替代层继续由 source-derived virtual HAL 满足。 下一步工作内容: 1. 将 workflow overview 固定 URL 表单的 action-plan 与 gate execution summary rows 同屏渲染,便于用户看到 URL workflow 的下一步命令和 gate evidence。 2. 将 manifest-backed motion matrix check 接入 project release readiness / batch acceptance artifact,使 release gate 不仅检查 sim-config source coverage,也检查 motion matrix 关联 source files 的 manifest 一致性。 3. 增加 saved-session diagnostics 的负向 fixtures,验证缺失 session diagnostics、 incomplete source compliance 或缺失 manifest-backed motion matrix 时 URL workflow 会给出明确 blocked reason。 ### 十六、2026-06-17 Workflow Overview URL Action Plan Gate Rows 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,将 workflow overview 固定 URL 表单的 action-plan 与 gate execution summary rows 同屏渲染,让用户 在页面输入 release artifact URL 与 browser diagnostics URL 后,可以同时看到 URL workflow 状态、下一步命令和 release gate evidence。 新增实质能力: - `workflow-overview.html` 固定 URL workflow 表单下新增两个渲染区: - `data-workflow-overview-release-readiness-artifact-url-workflow-action-plan`; - `data-workflow-overview-release-readiness-artifact-gate-execution-summary`; - `runWorkflowOverviewReleaseReadinessArtifactUrlForm()` 现在在完成 URL workflow 后 同屏 mount: - URL workflow summary rows; - URL workflow action-plan rows; - URL workflow gate execution summary rows; - `runWorkflowOverviewReleaseReadinessArtifactUrlForm()` 返回值新增: - `actionPlan`; - `actionPlanRenderState`; - `actionPlanMountResult`; - `gateExecutionSummary`; - `gateExecutionSummaryRenderState`; - `gateExecutionSummaryMountResult`; - Browser workflow overview API 新增 URL workflow action-plan DOM helpers: - `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanRenderState()`; - `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanDomContract()`; - `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanDomReadiness()`; - `renderWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanState()`; - `mountWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanState()`; - SDK README 同步说明 fixed workflow overview URL form 可将 URL workflow action plan 与 URL workflow rows 同屏渲染。 新增/扩展验证: - `ini_panel_workflow_overview_smoke.html` 覆盖: - 新增 browser API 方法存在; - 固定 URL 表单执行后 `actionPlanMountResult.ready === true`; - 固定 URL 表单执行后 action-plan render state 包含 `next-command`; - 固定 URL 表单执行后 `gateExecutionSummaryMountResult.ready === true`; - 固定 URL 表单执行后 gate execution summary render state 包含 `gate-ui-node-smokes`; - DOM 中 action-plan `next-command` 行显示 `none`; - DOM 中 gate execution summary 行显示 observed output matched; - `verify_ini_panel_browser.sh` 聚合确认 workflow overview、launch、control、 shell integration browser flows 仍全部通过; - `verify_ui_node_smokes.sh` 聚合确认 UI shell/API manifest/docs 不回归; - `verify_sdk_surface.sh` 聚合确认 SDK surface 与 release URL workflow 不回归。 关键验证: ```text browser_ini_opfs_smoke=ok browser_ini_control_page_smoke=ok browser_ini_launch_smoke=ok browser_ini_workflow_overview_smoke=ok browser_ini_shell_integration_workflow_smoke=ok ini_panel_run_summary_node_smoke=ok ini_panel_run_workflow_node_smoke=ok ini_panel_session_summary_node_smoke=ok ini_panel_session_workflow_node_smoke=ok ini_panel_machine_file_summary_node_smoke=ok ini_panel_state_summary_node_smoke=ok ini_panel_control_page_controller_node_smoke=ok ini_panel_control_page_refresh_workflow_node_smoke=ok ini_panel_control_page_session_workflow_node_smoke=ok ini_panel_readonly_status_api_node_smoke=ok ini_panel_entry_manifest_node_smoke=ok ini_panel_launch_api_manifest_node_smoke=ok ini_panel_shell_integration_manifest_node_smoke=ok ini_panel_ui_shell_node_smoke=ok ini_panel_shell_control_page_contract_node_smoke=ok ini_panel_entry_docs_node_smoke=ok real_simulation_programs_node_smoke=ok ui_node_smokes=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_release_artifact_url_workflow_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - workflow overview 固定 URL 表单只显示和验证 release artifact、browser diagnostics、 saved-session diagnostics、action-plan 与 gate execution evidence; - browser diagnostics artifact 中的 virtual HAL evidence 仍来自 source-derived virtual HAL reports; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM; - Web 方式数控系统仿真所需 HAL、halcmd、motion controller 替代层继续由 source-derived virtual HAL 满足。 下一步工作内容: 1. 将 manifest-backed motion matrix check 接入 project release readiness / batch acceptance artifact,使 release gate 不仅检查 sim-config source coverage,也检查 motion matrix 关联 source files 的 manifest 一致性。 2. 增加 saved-session diagnostics 的负向 fixtures,验证缺失 session diagnostics、 incomplete source compliance 或缺失 manifest-backed motion matrix 时 URL workflow 会给出明确 blocked reason。 3. 将 workflow overview 固定 URL 表单的 saved-session diagnostics readiness 明确显示为 独立状态行,便于用户区分 live diagnostics 与 saved-session diagnostics evidence。 ### 十七、2026-06-17 Release Gate Motion Matrix And Saved-Session Negative Fixtures 继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL 完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项和第 2 项,把 manifest-backed motion matrix check 接入 project release readiness / batch acceptance artifact,并为 saved-session diagnostics 增加 URL workflow 负向 fixtures。 新增实质能力: - `project-release-readiness.js` 统一新增/使用 `isVirtualHalMotionControllerMatrixReady()`: - 要求 motion matrix `complete === true`; - 要求 `webSimulationSatisfied === true`; - 要求 `manifestChecked === true`; - 要求 `missingFixtures`、`missingSimConfigTargets`、`missingManifestFiles` 均为空; - 要求包含 `motion.distance-to-go`、`motion.in-position`; - 要求包含 LinuxCNC motion source: `linuxcnc/src/emc/motion/motion.c`、`linuxcnc/src/emc/motion/axis.c`; - 要求包含 external-offsets、QtDragon multi-joint、vismach puma sim config source evidence; - `createProjectReleaseReadinessReport()` 新增 release 级 gate evidence: - `virtualHalMotionControllerMatrix`; - `virtualHalMotionControllerMatrixReady`; - missing reason:`virtual-hal-motion-controller-matrix`; - summary row:`Virtual HAL motion controller matrix`; - `createProjectReleaseReadinessArtifactValidation()` 新增强制校验: - artifact 必须携带 manifest-backed motion matrix; - artifact 必须显式标记 `virtualHalMotionControllerMatrixReady === true`; - artifact validation rows 显示 motion matrix ready/missing; - `createProjectBatchAcceptanceWorkflow()` / `createProjectBatchAcceptanceReport()` 新增: - `virtualHalMotionControllerMatrix`; - `virtualHalMotionControllerMatrixReady`; - checklist 项:`virtual-hal-motion-controller-matrix`; - batch checklist 从 `4/4` 扩展为 `5/5 passed`; - release readiness artifact writer 与 batch acceptance artifact writer 均使用真实 `wasm-port/tools/source-manifest.txt` 生成 manifest-backed motion matrix; - `loadProjectReleaseReadinessArtifactUrlWorkflow()` 新增可选: - `requireSavedSessionDiagnostics`; - 默认仍允许 live diagnostics artifact 在未保存 session 时通过; - 严格模式下,缺失 saved-session diagnostics 会输出 `diagnostics.virtualHalSessionDiagnostics` blocked reason; - URL workflow saved-session diagnostics 负向 fixtures 覆盖: - live diagnostics 可通过,但严格要求 saved-session 时被 blocked; - saved-session diagnostics 内嵌 source compliance incomplete 时被 blocked; - saved-session diagnostics 内嵌 motion matrix 未 manifest-backed check 时被 blocked。 新增/扩展验证: - `verify_project_release_readiness_artifact.mjs` 覆盖: - release readiness artifact 包含 manifest-backed motion matrix; - `virtualHalMotionControllerMatrixReady === true`; - matrix source evidence 包含 external offsets 与 QtDragon multi-joint sim config; - `verify_project_batch_acceptance_artifact.mjs` 覆盖: - batch artifact 携带 motion matrix; - matrix `manifestChecked === true`; - workflow motion matrix ready; - `verify_sdk_surface.mjs` 覆盖: - release readiness ready 需要 manifest-backed motion matrix; - batch acceptance report validation 需要 motion matrix; - report checklist 为 `5/5 passed`; - `verify_project_release_artifact_url_workflow.mjs` 覆盖: - 默认 URL workflow 同时支持 live diagnostics 与 saved-session diagnostics ready; - 严格 saved-session diagnostics 模式下,缺失 saved-session diagnostics 被 blocked; - incomplete source compliance 被 blocked; - missing manifest-backed motion matrix 被 blocked; - blocked reason 明确包含 `diagnostics.virtualHalSessionDiagnostics`。 关键验证: ```text project_release_artifact_url_workflow_node_smoke=ok sdk_surface_node_smoke=ok project_release_gate_manifest_node_smoke=ok project_batch_acceptance_workflow_node_smoke=ok project_batch_acceptance_artifact_node_smoke=ok project_release_readiness_artifact_node_smoke=ok git diff --check ok ``` 语义边界: - 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义; - release readiness / batch acceptance 只校验 Web virtual HAL motion matrix 的 source-derived evidence 与 manifest 一致性; - saved-session diagnostics 负向 fixtures 只验证 release evidence 缺失时的 blocked reason,不改变 LinuxCNC CNC 语义; - virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI; - G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM; - Web 方式数控系统仿真所需 HAL、halcmd、motion controller 替代层继续由 source-derived virtual HAL 满足。 下一步工作内容: 1. 将 workflow overview 固定 URL 表单的 saved-session diagnostics readiness 明确显示为 独立状态行,便于用户区分 live diagnostics 与 saved-session diagnostics evidence。 2. 将 saved-session diagnostics 负向 fixtures 扩展到 ini-panel workflow overview browser smoke,验证页面 DOM 会显示 saved-session blocked/not provided。 3. 将 release readiness / batch acceptance artifact 的 motion matrix manifest check 输出 加入 README/handoff 文档,形成发布交接可读说明。