接入虚拟HAL仿真配置promotion证据

This commit is contained in:
2026-06-18 04:47:30 +08:00
parent abf858641f
commit 0bc6896b36
24 changed files with 2879 additions and 108 deletions

View File

@@ -1266,3 +1266,393 @@ git diff --check ok
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 文档,形成发布交接可读说明。