结论:完成 evidence-ready / inventory-ready 双层 promotion candidate 管理,release/SDK gate 已纳入 virtual HAL promotion summary,baseline 保持 28/28/131/0,Python remap、tool DB、external user-M hard block 继续 locked。
2346 lines
106 KiB
Plaintext
2346 lines
106 KiB
Plaintext
项目接续文件:sim config coverage promotion 后续推进计划
|
||
|
||
生成时间:2026-06-18 CST
|
||
|
||
本文件接替 `text17.txt`,作为后续继续推进的接续文件。后续工作优先参考
|
||
`text18.txt`;除非明确要求审计旧记录,不再回到 `text1` 到 `text17` 扩展进度。
|
||
|
||
一、当前完成情况摘要
|
||
|
||
1. LinuxCNC-backed WASM 核心仍是 CNC 语义来源。
|
||
|
||
- G-code / interpreter / planner / kinematics / canonical motion 语义仍来自 vendored
|
||
LinuxCNC C/C++ 源码;
|
||
- Browser / UI / SDK 只做 host boundary、文件装载、OPFS/session、virtual HAL runtime、
|
||
仿真状态桥、测试胶水和报告;
|
||
- 不在 JS 中重写 G-code 解释器、planner、kinematics、tool/parameter 语义。
|
||
|
||
2. virtual HAL 已完全满足 Web 方式数控系统仿真系统。
|
||
|
||
当前 virtual HAL 已具备并通过 gate 验证:
|
||
|
||
- LinuxCNC realtime HAL simulation replacement;
|
||
- `halcmd` simulation replacement;
|
||
- motion controller simulation replacement;
|
||
- HAL pin/signal/param store;
|
||
- `setp`、`sets`、`net`、`show`、`getp`、`gets`、`loadrt`、`loadusr`、`addf`、
|
||
`start`、`stop` command workflow;
|
||
- servo-period motion stepping;
|
||
- axis/joint position feedback;
|
||
- source compliance report;
|
||
- sim-config source coverage report;
|
||
- command script fixture report;
|
||
- manifest-backed motion controller matrix report;
|
||
- OPFS/session persistence;
|
||
- saved-session release diagnostics evidence;
|
||
- release readiness / batch acceptance artifact gate。
|
||
|
||
3. release gate 已接入 virtual HAL motion matrix。
|
||
|
||
已完成:
|
||
|
||
- `virtualHalMotionControllerMatrix`;
|
||
- `virtualHalMotionControllerMatrixReady`;
|
||
- release readiness artifact 强制校验 manifest-backed motion matrix;
|
||
- batch acceptance artifact checklist 从 `4/4` 扩展为 `5/5 passed`;
|
||
- saved-session diagnostics 负向 fixtures:
|
||
- 缺失 saved-session diagnostics;
|
||
- incomplete source compliance;
|
||
- missing manifest-backed motion matrix。
|
||
|
||
4. sim config coverage promotion 已先形成分析文档。
|
||
|
||
新增分析文档:
|
||
|
||
```text
|
||
wasm-port/docs/sim-config-coverage-promotion-analysis.md
|
||
```
|
||
|
||
该文档已纳入:
|
||
|
||
```text
|
||
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
|
||
```
|
||
|
||
当前结论:
|
||
|
||
- 当前 generated inventory 中没有“hard block 已清空但仍 SKIP 的 main program”;
|
||
- 因此不应因为 virtual HAL 完善就直接降低 `skipped=131`;
|
||
- 下一步应推进“case promotion”:把已有 Node `INV` 或代表覆盖案例推进到 browser
|
||
diagnostics / release evidence;
|
||
- blocked runtime families 仍不能由 virtual HAL 或 JS glue 直接解锁。
|
||
|
||
二、当前 sim config inventory baseline
|
||
|
||
当前必须保持的 baseline:
|
||
|
||
```text
|
||
sim_configs_wasm_node_inventory_executed=28
|
||
sim_configs_wasm_node_inventory_passed=28
|
||
sim_configs_wasm_node_inventory_skipped=131
|
||
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
|
||
```
|
||
|
||
后续任何改动,只要涉及 inventory baseline,必须明确说明:
|
||
|
||
- 哪些 row 从何种状态变更;
|
||
- 为什么 LinuxCNC source/runtime evidence 已满足;
|
||
- 为什么不是 JS/browser 自行补语义;
|
||
- 为什么没有破坏 blocked runtime promotion lock。
|
||
|
||
三、virtual HAL 完善后可以推进的范围
|
||
|
||
virtual HAL 现在可以支撑以下 Web 仿真 promotion 范围:
|
||
|
||
- HAL / HALUI / deterministic UI process declarations;
|
||
- virtual `halcmd` workflow;
|
||
- machine state;
|
||
- motion feedback;
|
||
- axis/joint feedback;
|
||
- diagnostics artifact;
|
||
- saved-session diagnostics artifact;
|
||
- release readiness / batch acceptance evidence。
|
||
|
||
virtual HAL 仍不能解锁:
|
||
|
||
- Linux kernel hard-realtime ABI;
|
||
- 外部硬件驱动 ABI;
|
||
- native HAL module ABI;
|
||
- Python UI process emulation;
|
||
- Python remap runtime;
|
||
- tool database process protocol;
|
||
- external user-M process execution;
|
||
- upstream-invalid demo code。
|
||
|
||
四、promotion 铁律
|
||
|
||
后续 sim config coverage promotion 必须满足:
|
||
|
||
1. LinuxCNC source/config evidence owns the behavior。
|
||
2. Native 或当前 Node inventory evidence 已经通过;或者 row 是 macro/load /
|
||
remap_subroutine,且有明确非主程序验证计划。
|
||
3. 依赖仅限于 virtual HAL、HALUI、deterministic UI process declarations、machine
|
||
files、tool tables、remap subroutine assets 或已由 LinuxCNC-backed runtime 覆盖的
|
||
motion/kinematics evidence。
|
||
4. Browser evidence 必须能导出:
|
||
- virtual HAL source compliance;
|
||
- sim-config source coverage;
|
||
- command script fixtures;
|
||
- manifest-backed motion matrix;
|
||
- diagnostics artifact;
|
||
- 如涉及 session,必须导出 saved-session diagnostics。
|
||
5. row 不能属于:
|
||
- `L4-PYTHON-REMAP`;
|
||
- `L4-TOOL-DB`;
|
||
- `L4-USER-M-PROCESS`;
|
||
- `UPSTREAM-DEMO`;
|
||
- standalone-main 执行语境下的 `ASSET-ONLY`。
|
||
6. `verify_no_standalone_cnc_semantics.sh` 必须保持通过。
|
||
|
||
五、继续推进计划
|
||
|
||
### 1. 建立 promotion candidate report
|
||
|
||
新增机器可读候选报告,先只覆盖可推进案例,不改变 inventory baseline。
|
||
|
||
首批候选:
|
||
|
||
- `qtdragon/qtdragon_multi_joint/on_abort.ngc`;
|
||
- `qtdragon/qtdragon_xyz/on_abort.ngc`;
|
||
- `qtdragon/qtdragon_xyz45/on_abort.ngc`;
|
||
- `qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc`;
|
||
- `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc`;
|
||
- `qtvcp_screens/qtdragon/on_abort.ngc`;
|
||
- `axis/vismach/puma/puma_seam_weld.ngc`;
|
||
- `axis/rose_engine/rcone_demo.ngc`。
|
||
|
||
每行至少记录:
|
||
|
||
- candidate id;
|
||
- LinuxCNC source files;
|
||
- INI path;
|
||
- G-code path;
|
||
- current Node inventory status;
|
||
- current matrix browser status;
|
||
- dependency class;
|
||
- target browser evidence;
|
||
- required virtual HAL reports;
|
||
- blocked-family exclusion result。
|
||
|
||
建议 API / report 名称:
|
||
|
||
- `VIRTUAL_HAL_SIM_CONFIG_PROMOTION_CANDIDATES`;
|
||
- `createVirtualHalSimConfigPromotionCandidateReport()`;
|
||
- report `apiName`:
|
||
`linuxcnc-wasm-virtual-hal-sim-config-promotion-candidate-report`。
|
||
|
||
### 2. 增加 candidate report gate
|
||
|
||
新增 Node gate 断言:
|
||
|
||
- candidate report `complete === true`;
|
||
- candidate report `webSimulationSatisfied === true`;
|
||
- candidate 不包含:
|
||
- `L4-PYTHON-REMAP`;
|
||
- `L4-TOOL-DB`;
|
||
- `L4-USER-M-PROCESS`;
|
||
- `UPSTREAM-DEMO`;
|
||
- standalone main promotion 下的 `ASSET-ONLY`;
|
||
- candidate 当前 Node status 必须为 `PASS` 或明确 non-main fixture candidate;
|
||
- inventory baseline 保持:
|
||
- `executed=28`;
|
||
- `passed=28`;
|
||
- `skipped=131`;
|
||
- `unexpected_fail=0`。
|
||
|
||
建议接入:
|
||
|
||
- `verify_sdk_surface.mjs`;
|
||
- `verify_sim_configs_coverage_docs.mjs`;
|
||
- 后续可接入 release readiness artifact,但第一批先作为 SDK/docs gate。
|
||
|
||
### 3. 推进第一个 browser evidence 案例
|
||
|
||
建议首选:
|
||
|
||
```text
|
||
qtdragon/qtdragon_multi_joint/on_abort.ngc
|
||
```
|
||
|
||
选择原因:
|
||
|
||
- 当前 Node `INV`;
|
||
- 无 hard runtime block;
|
||
- 依赖 HAL/UI declarations 与 multi-joint machine context;
|
||
- virtual HAL motion matrix 已映射 `qtdragon-on-abort`;
|
||
- source evidence 已包含:
|
||
`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini`;
|
||
- 可验证 virtual HAL 对 Web CNC 仿真系统的完整满足性。
|
||
|
||
目标 browser diagnostics evidence:
|
||
|
||
- candidate id 存在;
|
||
- source files 完整;
|
||
- current Node inventory status 为 `PASS`;
|
||
- browser evidence ready;
|
||
- virtual HAL source compliance complete;
|
||
- sim-config source coverage complete;
|
||
- command script fixtures complete;
|
||
- motion matrix manifest checked;
|
||
- diagnostics artifact 可被 release URL workflow 验证。
|
||
|
||
### 4. 扩展 release diagnostics validation
|
||
|
||
release browser diagnostics validation 后续新增 candidate evidence 校验:
|
||
|
||
- diagnostics artifact 包含 candidate promotion report;
|
||
- candidate row ready;
|
||
- candidate source files 完整;
|
||
- candidate 不属于 hard-block family;
|
||
- current Node status 为 `PASS`;
|
||
- browser evidence ready;
|
||
- virtual HAL reports complete;
|
||
- motion matrix manifest checked。
|
||
|
||
URL workflow 中显示:
|
||
|
||
- candidate promotion evidence;
|
||
- candidate browser diagnostics;
|
||
- missing candidate reason;
|
||
- next command / action plan。
|
||
|
||
### 5. 更新 coverage matrix 注释
|
||
|
||
只在 browser gate 通过后更新 matrix。
|
||
|
||
可更新方向:
|
||
|
||
- 将对应行从“browser delegated to `woodpecker`”改为 explicit browser diagnostics
|
||
evidence;
|
||
- 不改变 blocked runtime family;
|
||
- 不降低 skip count;
|
||
- 不把 Node `INV` 误写成 browser `REP`,除非实际 browser smoke/gate 已覆盖该 row。
|
||
|
||
首批可能更新:
|
||
|
||
```text
|
||
qtdragon/qtdragon_multi_joint/on_abort.ngc
|
||
```
|
||
|
||
### 6. 推进 QtDragon family 全组
|
||
|
||
在第一个 QtDragon multi-joint candidate 通过后,继续推进:
|
||
|
||
- `qtdragon/qtdragon_xyz/on_abort.ngc`;
|
||
- `qtdragon/qtdragon_xyz45/on_abort.ngc`;
|
||
- `qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc`;
|
||
- `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc`;
|
||
- `qtvcp_screens/qtdragon/on_abort.ngc`。
|
||
|
||
目标:
|
||
|
||
- 从 shared `woodpecker` representative delegation 变为 explicit browser diagnostics
|
||
evidence;
|
||
- 每个 row 都有独立 source evidence;
|
||
- 每个 row 都保持 LinuxCNC-owned config/program evidence。
|
||
|
||
### 7. 推进 vismach / rose_engine 案例
|
||
|
||
后续候选:
|
||
|
||
- `axis/vismach/puma/puma_seam_weld.ngc`
|
||
- 当前 Node `INV`;
|
||
- 与 `puma_cube.ngc` 共用 PUMA machine context;
|
||
- 目标是形成 PUMA 双案例 browser diagnostics evidence。
|
||
- `axis/rose_engine/rcone_demo.ngc`
|
||
- 当前 Node `INV`;
|
||
- HAL process only;
|
||
- 适合作为非 Qt、非复杂 vismach remap 的轻量 browser diagnostics 案例。
|
||
|
||
### 8. 设计 macro/load 非主程序 promotion
|
||
|
||
不要把 macro/load 当 browser main program 执行。
|
||
|
||
候选只作为 non-main fixture evidence:
|
||
|
||
- `axis/external_offsets/queuebuster.ngc`;
|
||
- `axis/rose_engine/rcone.ngc`;
|
||
- `gscreen/silverdragon/macros/tool_sensor.ngc`;
|
||
- `gscreen/industrial_lathe_wear/toolchange.ngc`;
|
||
- `qtvcp_screens/industrial_lathe_wear/toolchange.ngc`。
|
||
|
||
需要新增独立报告,而不是复用 main-program promotion:
|
||
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()`;
|
||
- 或将其作为 promotion candidate report 的 `nonMainFixture` 分类。
|
||
|
||
### 9. 保持 hard boundary lock
|
||
|
||
继续禁止以下 family promotion:
|
||
|
||
- `L4-PYTHON-REMAP`;
|
||
- `L4-TOOL-DB`;
|
||
- `L4-USER-M-PROCESS`;
|
||
- `UPSTREAM-DEMO`。
|
||
|
||
这些只能通过 LinuxCNC-owned runtime proof 解锁,不能由 virtual HAL、browser UI、
|
||
SDK glue 或 JS fixture 解锁。
|
||
|
||
六、建议下一批实际执行目标
|
||
|
||
下一批建议只做一个完整闭环:
|
||
|
||
1. 新增 promotion candidate report;
|
||
2. 新增 candidate report Node gate;
|
||
3. 将 `qtdragon/qtdragon_multi_joint/on_abort.ngc` 纳入 browser diagnostics evidence;
|
||
4. release diagnostics validation 增加 candidate evidence ready 校验;
|
||
5. docs / matrix 只做最小同步;
|
||
6. inventory baseline 不变。
|
||
|
||
七、建议验证命令
|
||
|
||
每批至少运行:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
```
|
||
|
||
如涉及 release artifact / URL workflow,再运行:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
|
||
wasm-port/tests/host/verify_project_release_readiness_artifact.sh
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_artifact.sh
|
||
```
|
||
|
||
如涉及 ini-panel workflow overview,再运行:
|
||
|
||
```bash
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
```
|
||
|
||
八、后续记录规则
|
||
|
||
- 后续进度只追加到 `text18.txt`;
|
||
- 每批只追加一个新的中文编号或 `###` 标题记录;
|
||
- 提交前检查标题唯一性:
|
||
|
||
```bash
|
||
awk '/^[一二三四五六七八九十百]+、|^### / {print}' text18.txt | sort | uniq -d
|
||
```
|
||
|
||
- 不复制 `text17.txt` 的长历史;
|
||
- 不把局部重排、断言挪动、路径整理作为主目标;
|
||
- 每批必须产出至少一种可复用能力、可执行 gate、可验证 workflow 或明确 runtime
|
||
boundary proof;
|
||
- 对外表述必须同时说明:
|
||
- 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。
|
||
|
||
### 一、2026-06-18 Virtual HAL Sim Config Promotion Candidate Report
|
||
|
||
按本文件推进 virtual HAL 已满足 Web 仿真后的 sim config coverage promotion。本批完成
|
||
“下一批实际执行目标”的第 1 到第 4 项:新增 source-derived promotion candidate report,
|
||
新增 Node/browser gate,并把 `qtdragon/qtdragon_multi_joint/on_abort.ngc` 纳入 browser
|
||
diagnostics / release validation evidence。inventory baseline 保持不变。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 `VIRTUAL_HAL_SIM_CONFIG_PROMOTION_CANDIDATES`:
|
||
- `qtdragon-multi-joint-on-abort`;
|
||
- `qtdragon-xyz-on-abort`;
|
||
- `qtdragon-xyz45-on-abort`;
|
||
- `qtdragon-hd-xyz-on-abort`;
|
||
- `qtdragon-hd-z-compensation-on-abort`;
|
||
- `qtvcp-screens-qtdragon-on-abort`;
|
||
- `puma-seam-weld`;
|
||
- `rose-engine-rcone-demo`;
|
||
- 每个 candidate row 记录:
|
||
- LinuxCNC INI source file;
|
||
- LinuxCNC G-code source file;
|
||
- current Node inventory status;
|
||
- current matrix browser status;
|
||
- dependency class;
|
||
- target browser evidence;
|
||
- required virtual HAL reports;
|
||
- blocked-family exclusion;
|
||
- 新增 `createVirtualHalSimConfigPromotionCandidateReport()`:
|
||
- 输出 `linuxcnc-wasm-virtual-hal-sim-config-promotion-candidate-report`;
|
||
- 校验 source manifest;
|
||
- 校验 candidate 不属于 `L4-PYTHON-REMAP` / `L4-TOOL-DB` /
|
||
`L4-USER-M-PROCESS` / `UPSTREAM-DEMO`;
|
||
- 校验 current Node inventory status 为 `PASS`;
|
||
- 校验 required virtual HAL reports complete:
|
||
source compliance、sim-config source coverage、command fixtures、
|
||
manifest-backed motion matrix;
|
||
- 显式输出 `inventoryBaselineUnchanged === true`;
|
||
- `createLinuxCncVirtualHalRuntime()` 新增:
|
||
- `getSimConfigPromotionCandidateReport()`;
|
||
- SDK index、SDK README、browser simulation re-export 同步导出新常量和新 report API;
|
||
- real simulation page 新增:
|
||
- `getVirtualHalSimConfigPromotionCandidateReport()`;
|
||
- diagnostics artifact 字段 `virtualHalSimConfigPromotionCandidates`;
|
||
- release diagnostics validation 新增 candidate evidence 识别:
|
||
- `hasPromotionCandidates`;
|
||
- `promotionCandidatesReady`;
|
||
- validation row:`sim-config-promotion-candidates`;
|
||
- 如果 diagnostics artifact 携带 candidate report,则必须 complete;
|
||
- 首批要求 `qtdragon-multi-joint-on-abort` candidate ready,且包含
|
||
`qtdragon_xyyz.ini` 与 `on_abort.ngc` source evidence;
|
||
- release URL workflow fixtures、ini-panel workflow fixtures 同步携带 candidate evidence。
|
||
|
||
新增/扩展验证:
|
||
|
||
- `verify_sdk_surface.mjs` 覆盖:
|
||
- 新常量导出;
|
||
- 新 report API 导出;
|
||
- SDK README 文档化;
|
||
- candidate report complete;
|
||
- `inventoryBaselineUnchanged === true`;
|
||
- blocked candidate 为 0;
|
||
- missing manifest files 为 0;
|
||
- missing required virtual HAL reports 为 0;
|
||
- `qtdragon-multi-joint-on-abort` row ready;
|
||
- runtime wrapper 可读取 candidate report;
|
||
- release browser diagnostics validation 识别 candidate evidence ready;
|
||
- `real_simulation_page_smoke.html` 覆盖:
|
||
- browser API 暴露 `getVirtualHalSimConfigPromotionCandidateReport()`;
|
||
- diagnostics artifact 内嵌 complete candidate report;
|
||
- candidate report 包含 `qtdragon-multi-joint-on-abort`;
|
||
- candidate row current Node status 为 `PASS`;
|
||
- candidate row target browser evidence 为 `explicit-browser-diagnostics`;
|
||
- `verify_project_release_artifact_url_workflow.mjs` 覆盖:
|
||
- diagnostics artifact 携带 candidate evidence;
|
||
- URL workflow diagnostics validation `hasPromotionCandidates === true`;
|
||
- URL workflow diagnostics validation `promotionCandidatesReady === true`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖:
|
||
- ini-panel URL workflow diagnostics validation 识别 candidate evidence;
|
||
- diagnostics validation candidate evidence ready;
|
||
- `ini_panel_workflow_overview_smoke.html` 使用带 candidate evidence 的 diagnostics fixture。
|
||
|
||
关键验证:
|
||
|
||
```text
|
||
sim_configs_coverage_docs_node_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
|
||
browser_real_simulation_page_smoke=ok
|
||
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
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- candidate report 只把已有 Node `PASS` / source-derived virtual HAL evidence 推进到
|
||
browser diagnostics / release validation;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked,不能由 virtual HAL 或 JS glue 解锁;
|
||
- virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或
|
||
native HAL module ABI;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作内容:
|
||
|
||
1. 将 `qtdragon/qtdragon_multi_joint/on_abort.ngc` 的 explicit browser diagnostics evidence
|
||
同步到 coverage matrix 注释,把它从 delegated representative 记录为已具备 browser
|
||
diagnostics evidence。
|
||
2. 推进 QtDragon family 其余 candidate:
|
||
`qtdragon_xyz`、`qtdragon_xyz45`、`qtdragon_hd_xyz`、
|
||
`qtdragon_hd_z_compensation`、`qtvcp_screens/qtdragon`。
|
||
3. 将 `axis/vismach/puma/puma_seam_weld.ngc` 与 `axis/rose_engine/rcone_demo.ngc`
|
||
纳入 browser diagnostics candidate evidence,形成非 QtDragon 的 promotion 案例。
|
||
|
||
### 二、2026-06-18 QtDragon Family Browser Diagnostics Promotion
|
||
|
||
本批在上一轮 candidate report 基础上收口 QtDragon family 的机器可读 evidence,
|
||
把 promotion candidate 从“逐 row 断言”推进为 family-level browser diagnostics
|
||
summary,便于后续 release gate 和 URL workflow 直接判断整组是否 ready。
|
||
|
||
新增实质能力:
|
||
|
||
- `VIRTUAL_HAL_SIM_CONFIG_PROMOTION_CANDIDATES` 中 8 个 Tier 1 candidate 的
|
||
`currentMatrixBrowserStatus` 统一更新为 `explicit-browser-diagnostics`:
|
||
- 6 个 QtDragon / QTVCP on-abort row;
|
||
- `puma-seam-weld`;
|
||
- `rose-engine-rcone-demo`;
|
||
- `createVirtualHalSimConfigPromotionCandidateReport()` 新增 `familyRows`:
|
||
- 按 `simConfigTarget` 聚合;
|
||
- 对无 `simConfigTarget` 的 row 使用自身 id 聚合;
|
||
- 输出 `candidateIds`、`candidateCount`、`completeCount`、
|
||
`explicitBrowserDiagnosticsCount`、`explicitBrowserDiagnosticsReady`、
|
||
`sourceFiles`;
|
||
- QtDragon family 现在有机器可读 6/6 evidence:
|
||
- `id === "qtdragon-on-abort"`;
|
||
- `candidateCount === 6`;
|
||
- `completeCount === 6`;
|
||
- `explicitBrowserDiagnosticsCount === 6`;
|
||
- `explicitBrowserDiagnosticsReady === true`;
|
||
- PUMA 与 rose_engine 也进入 family summary:
|
||
- `vismach-remap-sims` 覆盖 `puma-seam-weld`;
|
||
- `rose-engine-rcone-demo` 覆盖 rose engine main diagnostics candidate;
|
||
- release readiness fixture 重新生成,静态 JSON artifact 现在包含 `familyRows`;
|
||
- SDK smoke、browser real simulation smoke、release readiness artifact smoke 同步验证:
|
||
- every candidate row `currentMatrixBrowserStatus === "explicit-browser-diagnostics"`;
|
||
- QtDragon family 6/6 ready;
|
||
- PUMA 与 rose_engine family explicit browser diagnostics ready。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- candidate report 仍只把已有 Node `PASS` / LinuxCNC source-derived virtual HAL
|
||
evidence 推进到 browser diagnostics / release validation;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 `boundaryEvidence` 增加 freshness gate,记录 generated inventory artifact 的
|
||
summary/hash,避免过期 TSV 继续作为 release evidence。
|
||
2. 将 positive non-main fixtures 的 declaration evidence 扩展到
|
||
`axis/rose_engine/rcone.ngc`,显式证明它来自 `rose_engine.ini` 的 macro/load 声明。
|
||
3. 将 `familyRows` 接入 release URL / ini-panel workflow 的可视摘要,让使用者可以直接看到
|
||
QtDragon、PUMA、rose_engine 三个 promotion family 的 ready 状态。
|
||
|
||
本批接续上一批 candidate report,完成 QtDragon family 全组 browser diagnostics evidence
|
||
推进,并保持 inventory baseline 不变。
|
||
|
||
新增实质能力:
|
||
|
||
- `VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS` 的 `qtdragon-on-abort` target 补齐:
|
||
- `qtdragon/qtdragon_xyz45/qtdragon_xyza.ini`;
|
||
- `qtdragon/qtdragon_xyz45/on_abort.ngc`;
|
||
- `qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini`;
|
||
- `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc`;
|
||
- release diagnostics validation 从只要求
|
||
`qtdragon-multi-joint-on-abort` 扩展为要求 QtDragon family 6 个 candidate 全部
|
||
ready:
|
||
- `qtdragon-multi-joint-on-abort`;
|
||
- `qtdragon-xyz-on-abort`;
|
||
- `qtdragon-xyz45-on-abort`;
|
||
- `qtdragon-hd-xyz-on-abort`;
|
||
- `qtdragon-hd-z-compensation-on-abort`;
|
||
- `qtvcp-screens-qtdragon-on-abort`;
|
||
- 每个 QtDragon candidate 必须满足:
|
||
- `complete === true`;
|
||
- `currentNodeInventoryStatus === "PASS"`;
|
||
- `blockedKind === "-"`;
|
||
- `targetBrowserEvidence === "explicit-browser-diagnostics"`;
|
||
- source files 同时包含对应 LinuxCNC INI 与 G-code 文件;
|
||
- real browser simulation diagnostics artifact 同步要求 QtDragon family 全组 candidate
|
||
evidence;
|
||
- coverage matrix 注释从“browser representative delegated to woodpecker”同步为
|
||
virtual HAL promotion candidate gate 已导出 explicit browser diagnostics evidence;
|
||
- promotion analysis 文档新增本批 QtDragon family promotion evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批只推进 source-derived diagnostics evidence,不新增
|
||
G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 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. 推进非 QtDragon browser diagnostics promotion:
|
||
`axis/vismach/puma/puma_seam_weld.ngc` 与
|
||
`axis/rose_engine/rcone_demo.ngc`。
|
||
2. 为 PUMA / rose engine 增加 release diagnostics validation 中的 required candidate
|
||
gate,形成非 Qt、非 on-abort family 的 promotion proof。
|
||
3. 之后再设计 macro/load non-main fixture report,不把 macro/load 误作为 standalone
|
||
browser main program 执行。
|
||
|
||
### 三、2026-06-18 Non-Qt Virtual HAL Promotion Evidence
|
||
|
||
本批接续 QtDragon family promotion,将非 QtDragon Tier 1 candidate 纳入 release
|
||
diagnostics required candidate gate,形成非 Qt、非 on-abort family 的 virtual HAL
|
||
browser diagnostics proof。
|
||
|
||
新增实质能力:
|
||
|
||
- release diagnostics validation 的 required promotion candidate gate 从 QtDragon 6 项扩展为
|
||
Tier 1 全量 8 项:
|
||
- QtDragon family 6 个 on-abort candidate;
|
||
- `puma-seam-weld`;
|
||
- `rose-engine-rcone-demo`;
|
||
- `puma-seam-weld` required evidence 必须包含:
|
||
- `linuxcnc/configs/sim/axis/vismach/puma/puma.ini`;
|
||
- `linuxcnc/configs/sim/axis/vismach/puma/puma_seam_weld.ngc`;
|
||
- `linuxcnc/configs/sim/axis/vismach/puma/remap_subs/428remap.ngc`;
|
||
- `rose-engine-rcone-demo` required evidence 必须包含:
|
||
- `linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini`;
|
||
- `linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc`;
|
||
- SDK smoke 与 real browser simulation smoke 同步要求上述 8 个 candidate 全部 ready;
|
||
- coverage matrix 对 `puma_seam_weld.ngc` 与 `rcone_demo.ngc` 注释更新为 explicit
|
||
browser diagnostics evidence;
|
||
- promotion analysis 文档新增 Non-Qt Promotion Evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- PUMA / rose engine promotion 只推进 source-derived diagnostics evidence,不新增
|
||
G-code/interpreter/planner/kinematics/remap 语义;
|
||
- PUMA remap subroutine 作为 LinuxCNC source evidence 引用,不把 ASSET-ONLY subroutine
|
||
当 standalone 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 non-main fixture report,首选
|
||
`axis/rose_engine/rcone.ngc` 与 `axis/external_offsets/queuebuster.ngc`。
|
||
2. gate 必须明确 `nonMainFixture === true`,避免把 macro/load 误作为 standalone browser
|
||
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 误解锁。
|
||
|
||
### 五、2026-06-18 Macro Load Blocked Fixture Lock
|
||
|
||
本批按上一节建议先评估 `gscreen/silverdragon/macros/tool_sensor.ngc`。结论是不能直接
|
||
作为 positive macro/load fixture 推进:当前 generated boundary evidence 显示 owning
|
||
machine file `gscreen/silverdragon/silverdragon.ini` 在 vendored manifest 中不可用,且该
|
||
family 涉及 Python UI/process 边界风险。为避免 virtual HAL 误解锁 Python UI 或
|
||
Python remap family,本批新增 negative fixture gate。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 `VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_BLOCKED_FIXTURES`;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 新增:
|
||
- `blockedRows`;
|
||
- `blockedFixturePromotionViolations`;
|
||
- summary row:`blocked-fixture-lock`;
|
||
- 首批 blocked fixture:
|
||
- `silverdragon-tool-sensor-python-ui-boundary`:
|
||
- `fixturePath` 为
|
||
`linuxcnc/configs/sim/gscreen/silverdragon/macros/tool_sensor.ngc`;
|
||
- `owningIniPath` 为
|
||
`linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini`;
|
||
- `blockedKind` 为 `PYTHON-UI-PROCESS`;
|
||
- 必须 `excludedFromPositiveFixtures === true`;
|
||
- `gmoccapy-on-abort-python-remap-boundary`:
|
||
- `fixturePath` 为
|
||
`linuxcnc/configs/sim/gmoccapy/macros/on_abort.ngc`;
|
||
- `owningIniPath` 为 `linuxcnc/configs/sim/gmoccapy/6_axis.ini`;
|
||
- `blockedKind` 为 `L4-PYTHON-REMAP`;
|
||
- 必须 `excludedFromPositiveFixtures === true`;
|
||
- release diagnostics validation 新增 required negative evidence:
|
||
- `blockedFixturePromotionViolations.length === 0`;
|
||
- SilverDragon `tool_sensor.ngc` 与 gmoccapy `on_abort.ngc` 必须存在于
|
||
`blockedRows`;
|
||
- 两者不能出现在 positive macro/load fixture rows;
|
||
- real simulation smoke 与 SDK smoke 同步验证 blocked fixture lock;
|
||
- coverage matrix 对 `gscreen/silverdragon/macros/tool_sensor.ngc` 注释更新为 blocked
|
||
negative fixture;
|
||
- promotion analysis 文档新增 Macro/Load Blocked Fixture Lock 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 本批没有把 SilverDragon、gmoccapy 或任何 Python UI / Python remap family 作为
|
||
virtual HAL positive fixture 推进;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `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 candidate audit,将
|
||
`gscreen/industrial_lathe_wear/toolchange.ngc` 与
|
||
`qtvcp_screens/industrial_lathe_wear/toolchange.ngc` 先作为 audit rows 评估。
|
||
2. 只有 owning INI、machine files、tool table、UI/process declaration 都有
|
||
LinuxCNC source evidence,且不需要 Python UI process emulation 时,才允许转为
|
||
positive non-main fixture。
|
||
3. 如证据仍不完整,继续扩展 blocked fixture lock,不降低 inventory baseline。
|
||
|
||
### 六、2026-06-18 UI-Family Macro Load Candidate Audit
|
||
|
||
本批接续上一节建议,把 UI-family macro/load 候选先纳入机器可读 audit rows,而不是
|
||
positive fixture promotion。结论是这批仍不能由 virtual HAL 直接解锁。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 `VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_AUDIT_CANDIDATES`;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 新增:
|
||
- `auditRows`;
|
||
- `auditPromotionViolations`;
|
||
- summary row:`ui-family-audit`;
|
||
- 首批 audit candidate:
|
||
- `gscreen-industrial-lathe-wear-toolchange-audit`:
|
||
- `fixturePath` 为
|
||
`linuxcnc/configs/sim/gscreen/industrial_lathe_wear/toolchange.ngc`;
|
||
- `owningIniPath` 为
|
||
`linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini`;
|
||
- `auditStatus` 为 `blocked-missing-owning-ini`;
|
||
- `promotionAllowed === false`;
|
||
- 必须 `excludedFromPositiveFixtures === true`;
|
||
- `qtvcp-industrial-lathe-wear-toolchange-audit`:
|
||
- `fixturePath` 为
|
||
`linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/toolchange.ngc`;
|
||
- `owningIniPath` 为
|
||
`linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini`;
|
||
- `auditStatus` 为 `blocked-missing-owning-ini`;
|
||
- `promotionAllowed === false`;
|
||
- 必须 `excludedFromPositiveFixtures === true`;
|
||
- release diagnostics validation 新增 required audit evidence:
|
||
- `auditPromotionViolations.length === 0`;
|
||
- 两个 industrial lathe wear `toolchange.ngc` audit rows 必须存在;
|
||
- 两者不能出现在 positive macro/load fixture rows;
|
||
- SDK index、browser simulation re-export 同步导出 audit candidate 常量;
|
||
- SDK smoke 与 real browser simulation smoke 同步验证 audit rows;
|
||
- SDK README 与 promotion analysis 文档同步说明 UI-family audit gate。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- industrial lathe wear `toolchange.ngc` 只作为 audit negative evidence,不作为
|
||
standalone browser main program,也不作为 positive macro/load fixture;
|
||
- 只有 owning INI、machine files、tool table、UI/process declaration 都有 LinuxCNC
|
||
source evidence,且不需要 Python UI process emulation 时,才允许后续 positive
|
||
promotion;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 UI-family audit 与 generated boundary inventory 对齐,补一份 machine-readable
|
||
“owning INI missing / UI process boundary”来源说明,避免 audit row 靠手工判断。
|
||
2. 继续增加 release diagnostics negative fixtures:缺失 `auditRows`、audit row 被误放入
|
||
positive fixtures、`promotionAllowed === true` 但证据不足时必须 fail。
|
||
3. 暂不降低 inventory baseline;后续 promotion 只从已有 Node `PASS` 且无 blocked
|
||
runtime family 的 main program 或明确 non-main fixture 中推进。
|
||
|
||
### 七、2026-06-18 UI-Family Audit Boundary Evidence Gate
|
||
|
||
本批接续上一节建议,把 UI-family macro/load audit rows 与 generated boundary inventory
|
||
对齐,补齐机器可读来源说明,并增加 release diagnostics 负向 gate。
|
||
|
||
新增实质能力:
|
||
|
||
- `VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_AUDIT_CANDIDATES` 的两个 industrial lathe
|
||
`toolchange.ngc` audit rows 新增 `boundaryEvidence`:
|
||
- source artifacts:
|
||
- `wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv`;
|
||
- `wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv`;
|
||
- `boundarySummary` 必须记录:
|
||
- 对应 `fixturePath`;
|
||
- 对应 `owningIniPath`;
|
||
- `recommendedBlocked === "UNAVAILABLE"`;
|
||
- `dependencies` 包含 `missing_vendored_ini:`;
|
||
- `iniBoundarySummary` 必须记录:
|
||
- 对应 `owningIniPath`;
|
||
- `vendored === 0`;
|
||
- `reportAvailable === 0`;
|
||
- `recommendedBlocked === "UNAVAILABLE"`;
|
||
- `dependencies` 包含 `missing_vendored_ini:`;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 新增:
|
||
- `missingAuditRows`;
|
||
- `auditBoundaryEvidenceViolations`;
|
||
- `auditPromotionAllowedViolations`;
|
||
- audit row 字段 `boundaryEvidenceReady`;
|
||
- report `complete` 现在要求:
|
||
- audit rows 存在;
|
||
- audit rows 未进入 positive fixture;
|
||
- generated boundary evidence ready;
|
||
- `promotionAllowed === true` 不能在证据不足时出现;
|
||
- release diagnostics validation 同步要求:
|
||
- `missingAuditRows.length === 0`;
|
||
- `auditBoundaryEvidenceViolations.length === 0`;
|
||
- `auditPromotionAllowedViolations.length === 0`;
|
||
- audit rows 的 boundary evidence 必须与 generated inventory 缺失 owning INI 证据一致;
|
||
- SDK smoke 新增负向 fixtures:
|
||
- 缺失 generated boundary evidence 必须 fail;
|
||
- audit candidate 被误放入 positive fixtures 必须 fail;
|
||
- `promotionAllowed === true` 但证据不足必须 fail;
|
||
- browser diagnostics artifact 缺失 audit rows / boundary evidence violations /
|
||
promotionAllowed violations 必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证 audit row
|
||
的 boundary evidence;
|
||
- promotion analysis 文档新增 UI-Family Audit Boundary Evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- industrial lathe wear `toolchange.ngc` 仍只是 audit negative evidence,不是
|
||
positive fixture,不是 browser main program;
|
||
- generated boundary evidence 只证明 owning INI 在当前 vendored inventory 中缺失,
|
||
不把 virtual HAL 扩展为 Python UI process emulation;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 把 SilverDragon blocked fixture 也接入同样的 generated boundary evidence 字段,
|
||
让 `tool_sensor.ngc` 的 blocked lock 不再只依赖手工 reason。
|
||
2. 为 `boundaryEvidence` 增加 manifest/source artifact freshness gate,避免使用过期的
|
||
`build/wasm/sim-configs-inventory/*.tsv` 证据。
|
||
3. 继续保持 inventory baseline 不变;后续只推进已具备 LinuxCNC source/runtime
|
||
evidence 的 non-main fixture 或 main program diagnostics evidence。
|
||
|
||
### 八、2026-06-18 SilverDragon Blocked Boundary Evidence Gate
|
||
|
||
本批接续上一节建议,把 SilverDragon blocked fixture 接入 generated boundary evidence,
|
||
让 `tool_sensor.ngc` 的 blocked lock 不再只依赖手工 reason。
|
||
|
||
新增实质能力:
|
||
|
||
- `VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_BLOCKED_FIXTURES` 新增 `boundaryEvidence`:
|
||
- `silverdragon-tool-sensor-python-ui-boundary`:
|
||
- `fixturePath` 为
|
||
`linuxcnc/configs/sim/gscreen/silverdragon/macros/tool_sensor.ngc`;
|
||
- `owningIniPath` 为 `linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini`;
|
||
- generated boundary evidence 来自:
|
||
- `wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv`;
|
||
- `wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv`;
|
||
- evidence 必须证明 `recommendedBlocked === "UNAVAILABLE"` 且 dependencies
|
||
包含 `missing_vendored_ini:configs/sim/gscreen/silverdragon/silverdragon.ini`;
|
||
- `gmoccapy-on-abort-python-remap-boundary` 同步补齐 generated boundary evidence;
|
||
- 新增 helper `isGeneratedBoundaryEvidenceReady()`,blocked rows 与 audit rows 复用同一
|
||
generated boundary evidence 校验;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 新增:
|
||
- blocked row 字段 `boundaryEvidence`;
|
||
- blocked row 字段 `boundaryEvidenceReady`;
|
||
- `blockedBoundaryEvidenceViolations`;
|
||
- report `complete` 现在要求 blocked fixture 也具备 generated boundary evidence;
|
||
- release diagnostics validation 同步要求:
|
||
- `blockedBoundaryEvidenceViolations.length === 0`;
|
||
- blockedRows 的 boundary evidence 必须证明 owning INI missing;
|
||
- SDK smoke 新增负向 fixture:
|
||
- blocked row 缺失 generated boundary evidence 必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证 blocked row
|
||
boundary evidence;
|
||
- promotion analysis 文档新增 SilverDragon Blocked Boundary Evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- SilverDragon `tool_sensor.ngc` 仍是 blocked negative fixture,不是 positive
|
||
macro/load fixture,不是 browser main program;
|
||
- generated boundary evidence 只证明 owning INI 在当前 vendored inventory 中缺失,
|
||
不把 virtual HAL 扩展为 Python UI process emulation;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 `boundaryEvidence` 增加 freshness gate,记录 generated inventory artifact 的
|
||
baseline summary 或 timestamp/hash,避免使用过期 TSV。
|
||
2. 将 `axis/external_offsets/queuebuster.ngc` 的 declared-only fixture 也补充
|
||
declaration-level evidence,显式指向 `eoffsets.ini` 的 `NGCGUI_SUBFILE`。
|
||
3. 继续保持 inventory baseline 不变,只推进 evidence/report/gate 层面的 Web
|
||
simulation readiness。
|
||
|
||
### 九、2026-06-18 Queuebuster Declaration Evidence Gate
|
||
|
||
本批接续上一节建议,把 `axis/external_offsets/queuebuster.ngc` 的 declared-only
|
||
non-main fixture 补充 declaration-level evidence,显式证明它来自 LinuxCNC
|
||
`eoffsets.ini` 的 `NGCGUI_SUBFILE` 声明。
|
||
|
||
新增实质能力:
|
||
|
||
- `external-offsets-queuebuster-macro-load` 新增 `declarationEvidence`:
|
||
- `sourceFile`:
|
||
`linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini`;
|
||
- `section`:`DISPLAY`;
|
||
- `key`:`NGCGUI_SUBFILE`;
|
||
- `value`:`queuebuster.ngc`;
|
||
- `line`:`40`;
|
||
- `sourceLine`:`NGCGUI_SUBFILE = queuebuster.ngc`;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 新增:
|
||
- row 字段 `declarationEvidence`;
|
||
- row 字段 `declarationEvidenceReady`;
|
||
- `declarationEvidenceViolations`;
|
||
- declared-only fixture 的 `complete` 现在要求 declaration evidence ready;
|
||
- release diagnostics validation 同步要求:
|
||
- `declarationEvidenceViolations.length === 0`;
|
||
- `external-offsets-queuebuster-macro-load` 必须携带 `NGCGUI_SUBFILE =
|
||
queuebuster.ngc` evidence;
|
||
- SDK smoke 新增负向 fixture:
|
||
- queuebuster declared-only fixture 缺失 declaration evidence 必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证
|
||
queuebuster declaration evidence;
|
||
- promotion analysis 文档新增 Queuebuster Declaration Evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- `queuebuster.ngc` 仍是 declared-only non-main fixture,不是 browser main program;
|
||
- declaration evidence 只证明 LinuxCNC INI source 声明,不把 virtual HAL 扩展为
|
||
Python remap runtime 或 external user-M process execution;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 `boundaryEvidence` 增加 freshness gate,记录 generated inventory artifact 的
|
||
summary/hash,避免过期 TSV 继续作为 release evidence。
|
||
2. 将 positive non-main fixtures 的 declaration evidence 扩展到
|
||
`axis/rose_engine/rcone.ngc`,显式证明它来自 `rose_engine.ini` 的 macro/load 声明。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十、2026-06-18 Rose Engine Declaration Evidence Gate
|
||
|
||
本批接续上一节建议,把 positive non-main fixture
|
||
`axis/rose_engine/rcone.ngc` 也补充 declaration-level evidence,显式证明它来自
|
||
LinuxCNC `rose_engine.ini` 的 `NGCGUI_SUBFILE` 声明。
|
||
|
||
新增实质能力:
|
||
|
||
- `rose-engine-rcone-macro-load` 新增 `declarationEvidence`:
|
||
- `sourceFile`:`linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini`;
|
||
- `section`:`DISPLAY`;
|
||
- `key`:`NGCGUI_SUBFILE`;
|
||
- `value`:`rcone.ngc`;
|
||
- `line`:`34`;
|
||
- `sourceLine`:`NGCGUI_SUBFILE = rcone.ngc`;
|
||
- `createVirtualHalSimConfigMacroLoadFixtureReport()` 的 declaration gate 从
|
||
`declaredOnly === true` 扩展为所有声明了 `declarationSource` 的 positive fixture;
|
||
- positive non-main fixture row 新增 `requiresDeclarationEvidence`;
|
||
- release diagnostics validation 同步要求 `rose-engine-rcone-macro-load` 携带
|
||
`rose_engine.ini` 第 34 行 declaration evidence;
|
||
- SDK smoke 新增负向 fixture:
|
||
- `rose-engine-rcone-macro-load` 缺失 declaration evidence 必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证 rcone 与
|
||
queuebuster 两个 positive non-main fixture 的 declaration evidence;
|
||
- promotion analysis 文档新增 Rose Engine Declaration Evidence 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpected_fail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- `rcone.ngc` 仍是 LinuxCNC INI 声明的 non-main macro/load support asset,不是
|
||
browser main program;
|
||
- declaration evidence 只证明 LinuxCNC INI source 声明,不把 virtual HAL 扩展为
|
||
Python remap runtime、tool DB process protocol 或 external user-M process execution;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation 或 Python remap runtime;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 `boundaryEvidence` 增加 freshness gate,记录 generated inventory artifact 的
|
||
summary/hash,避免过期 TSV 继续作为 release evidence。
|
||
2. 将 `familyRows` 接入 release URL / ini-panel workflow 的可视摘要,让使用者可以直接看到
|
||
QtDragon、PUMA、rose_engine 三个 promotion family 的 ready 状态。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十一、2026-06-18 Boundary Evidence Freshness Gate
|
||
|
||
本批接续上一节建议,为 blocked/audit macro-load `boundaryEvidence` 增加 freshness
|
||
gate,避免过期 generated inventory TSV 继续作为 release evidence。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 `VIRTUAL_HAL_SIM_CONFIG_INVENTORY_BASELINE`:
|
||
- `executed: 28`;
|
||
- `passed: 28`;
|
||
- `skipped: 131`;
|
||
- `unexpectedFail: 0`;
|
||
- SDK index 与 README 同步导出/记录该 baseline 常量;
|
||
- blocked fixtures 与 audit candidates 的 `boundaryEvidence` 新增 `baselineSummary`;
|
||
- `isGeneratedBoundaryEvidenceReady()` 现在要求:
|
||
- `sourceArtifacts` 包含 `boundary-summary.tsv` 与 `ini-boundary-summary.tsv`;
|
||
- `baselineSummary` 与当前 inventory baseline 完全一致;
|
||
- `boundarySummary` 与 `iniBoundarySummary` 仍证明 owning INI missing;
|
||
- release diagnostics validation 新增 baseline freshness 校验:
|
||
- blocked rows 必须携带 fresh `baselineSummary`;
|
||
- audit rows 必须携带 fresh `baselineSummary`;
|
||
- SDK smoke 新增负向 fixture:
|
||
- blocked boundary evidence 的 `skipped` 伪造为 `130` 时必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证
|
||
`baselineSummary`;
|
||
- release readiness fixture 重新生成,静态 JSON artifact 现在携带 fresh baseline
|
||
evidence;
|
||
- promotion analysis 文档新增 Boundary Evidence Freshness Gate 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- freshness gate 只约束 generated boundary evidence 与当前 inventory artifact
|
||
baseline 对齐;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 `familyRows` 接入 release URL / ini-panel workflow 的可视摘要,让使用者可以直接看到
|
||
QtDragon、PUMA、rose_engine 三个 promotion family 的 ready 状态。
|
||
2. 为 freshness gate 增加 artifact hash 字段,进一步证明 `boundary-summary.tsv` 与
|
||
`ini-boundary-summary.tsv` 不是旧文件。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十二、2026-06-18 Promotion Family URL Workflow Summary
|
||
|
||
本批接续上一节建议,把 `familyRows` 接入 release URL / ini-panel workflow 的可视摘要,
|
||
让使用者可以直接看到 QtDragon、PUMA、rose_engine 三个 promotion family 的 ready 状态。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 helper `createPromotionFamilySummaryText()`:
|
||
- 从 promotion candidate report 的 `familyRows` 生成摘要;
|
||
- 当前 ready artifact 输出:
|
||
`qtdragon-on-abort: 6/6 ready; vismach-remap-sims: 1/1 ready; rose-engine-rcone-demo: 1/1 ready`;
|
||
- `createProjectReleaseReadinessReport()` 新增:
|
||
- `virtualHalPromotionFamilySummary`;
|
||
- rows 中新增 `virtual-hal-promotion-families`;
|
||
- `createProjectReleaseReadinessArtifactValidation()` 新增:
|
||
- `virtualHalPromotionFamilySummary`;
|
||
- validation rows 中新增 `virtual-hal-promotion-families`;
|
||
- `createProjectReleaseReadinessArtifactValidationSummaryViewModel()` 显示 promotion
|
||
family summary;
|
||
- `createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel()` 显示 promotion
|
||
family summary;
|
||
- ini-panel workflow overview URL summary 同步显示 promotion family summary;
|
||
- ini-panel 测试 fixture 补齐 release artifact 内的 promotion candidate report 和
|
||
macro/load fixture report,避免 URL workflow 只显示局部 release evidence;
|
||
- release readiness fixture 重新生成,静态 JSON artifact 现在携带
|
||
`virtualHalPromotionFamilySummary`;
|
||
- SDK smoke、release artifact URL workflow smoke、project release gate manifest smoke、
|
||
ini-panel UI shell smoke 同步验证可视摘要;
|
||
- promotion analysis 文档新增 Promotion Family URL Workflow Summary 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 本批只把已有 source-derived candidate family evidence 暴露到 release URL /
|
||
ini-panel workflow summary;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 freshness gate 增加 artifact hash 字段,进一步证明 `boundary-summary.tsv` 与
|
||
`ini-boundary-summary.tsv` 不是旧文件。
|
||
2. 将 promotion family summary 扩展为结构化 rows,分别展示 QtDragon、PUMA、
|
||
rose_engine 的 source file count 与 diagnostics ready 状态。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十三、2026-06-18 Structured Promotion Family Rows
|
||
|
||
本批接续上一节建议,把 promotion family summary 扩展为结构化 rows,分别展示
|
||
QtDragon、PUMA、rose_engine 的 source file count 与 diagnostics ready 状态。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 helper `createPromotionFamilySummaryRows()`:
|
||
- 从 promotion candidate report 的 `familyRows` 生成结构化摘要;
|
||
- 每行包含 `id`、`candidateCount`、`completeCount`、`sourceFileCount`、
|
||
`explicitBrowserDiagnosticsReady`、`ready`、`value`;
|
||
- `createProjectReleaseReadinessReport()` 新增:
|
||
- `virtualHalPromotionFamilyRows`;
|
||
- rows 中新增每个 family 的结构化展示行;
|
||
- `createProjectReleaseReadinessArtifactValidation()` 新增:
|
||
- `virtualHalPromotionFamilyRows`;
|
||
- validation rows 中新增每个 family 的结构化展示行;
|
||
- `createProjectReleaseReadinessArtifactValidationSummaryViewModel()` 显示结构化
|
||
promotion family rows;
|
||
- `createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel()` 显示结构化
|
||
promotion family rows;
|
||
- ini-panel workflow overview URL summary 同步显示结构化 promotion family rows;
|
||
- 当前结构化输出:
|
||
- `qtdragon-on-abort: 6/6 ready; sources=12; diagnostics=ready`;
|
||
- `vismach-remap-sims: 1/1 ready; sources=3; diagnostics=ready`;
|
||
- `rose-engine-rcone-demo: 1/1 ready; sources=2; diagnostics=ready`;
|
||
- release readiness fixture 重新生成,静态 JSON artifact 现在携带
|
||
`virtualHalPromotionFamilyRows`;
|
||
- SDK smoke、release artifact URL workflow smoke、project release gate manifest smoke、
|
||
ini-panel UI shell smoke、release readiness artifact smoke 同步验证结构化 rows;
|
||
- promotion analysis 文档新增 Structured Promotion Family Rows 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 本批只把已有 source-derived candidate family evidence 进一步结构化;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 freshness gate 增加 artifact hash 字段,进一步证明 `boundary-summary.tsv` 与
|
||
`ini-boundary-summary.tsv` 不是旧文件。
|
||
2. 将 structured promotion family rows 接入浏览器页面 DOM 渲染层,形成可见 UI 行而不仅是
|
||
view-model row。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十四、2026-06-18 Boundary Evidence Artifact Hash Gate
|
||
|
||
本批接续上一节建议,为 freshness gate 增加 artifact hash 字段,进一步证明
|
||
`boundary-summary.tsv` 与 `ini-boundary-summary.tsv` 不是旧文件或替代文件。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 `VIRTUAL_HAL_SIM_CONFIG_INVENTORY_ARTIFACT_HASHES`:
|
||
- `boundary-summary.tsv`:
|
||
`de6cf57b7c07182e3bcb32e22dbdf202b618cabc14620d6dff1ef815587950b9`;
|
||
- `ini-boundary-summary.tsv`:
|
||
`b0afe27224e97a82fbecbbd75a7c86233c98fe957d9c1ba20f0656f8745a5eae`;
|
||
- SDK index 与 README 同步导出/记录该 hash 常量;
|
||
- blocked fixtures 与 audit candidates 的 `boundaryEvidence` 新增 `sourceArtifactHashes`;
|
||
- `isGeneratedBoundaryEvidenceReady()` 现在要求:
|
||
- artifact path 存在;
|
||
- `baselineSummary` 与 inventory baseline 一致;
|
||
- `sourceArtifactHashes` 与当前两个 generated TSV 的 SHA-256 一致;
|
||
- `boundarySummary` 与 `iniBoundarySummary` 仍证明 owning INI missing;
|
||
- release diagnostics validation 同步检查 artifact hash freshness;
|
||
- SDK smoke 新增负向 fixture:
|
||
- blocked boundary evidence 的 `boundary-summary.tsv` hash 伪造为 `stale` 时必须 fail;
|
||
- real browser simulation smoke 与 release readiness artifact smoke 同步验证 hash;
|
||
- release readiness fixture 重新生成,静态 JSON artifact 现在携带 source artifact hash
|
||
evidence;
|
||
- promotion analysis 文档新增 Boundary Evidence Artifact Hash Gate 小节。
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- hash gate 只约束 generated boundary evidence 的来源与当前 build artifact 一致;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 structured promotion family rows 接入浏览器页面 DOM 渲染层,形成可见 UI 行而不仅是
|
||
view-model row。
|
||
2. 为 artifact hash gate 增加自动生成脚本,避免 generated TSV 变更后手工更新 hash。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十五、2026-06-18 Browser Promotion Family DOM Rows
|
||
|
||
本批接续上一节建议,将 structured promotion family rows 接入 real simulation 浏览器页面
|
||
DOM 渲染层,形成可见 diagnostics UI 行,而不仅停留在 view-model / report 数据。
|
||
|
||
新增实质能力:
|
||
|
||
- real simulation diagnostics panel 新增 `data-promotion-family-rows` DOM 容器;
|
||
- 新增 `renderPromotionFamilyRows()`:
|
||
- 从 `createVirtualHalSimConfigPromotionCandidateReport().familyRows` 渲染可见行;
|
||
- 写入 `document.body.dataset.promotionFamilyReady`;
|
||
- 写入 `document.body.dataset.promotionFamilyCount`;
|
||
- 每行暴露 `data-promotion-family-row`、`data-promotion-family-ready` 与
|
||
`data-promotion-family-value`;
|
||
- browser API 新增:
|
||
- `getVirtualHalPromotionFamilyRows()`;
|
||
- 当前浏览器可见行:
|
||
- `qtdragon-on-abort: 6/6 ready; sources=12`;
|
||
- `vismach-remap-sims: 1/1 ready; sources=3`;
|
||
- `rose-engine-rcone-demo: 1/1 ready; sources=2`;
|
||
- real browser simulation smoke 新增断言:
|
||
- API 暴露 `getVirtualHalPromotionFamilyRows()`;
|
||
- `promotionFamilyReady === "true"`;
|
||
- `promotionFamilyCount === "3"`;
|
||
- QtDragon、PUMA、rose_engine 三个 DOM row 均 ready;
|
||
- DOM 文本与 promotion candidate report 的结构化 family evidence 对齐;
|
||
- promotion analysis 文档新增 Browser Promotion Family DOM Rows 小节。
|
||
|
||
关键验证:
|
||
|
||
```text
|
||
git diff --check 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
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 本批只把已有 source-derived candidate family evidence 渲染为浏览器可见 diagnostics
|
||
UI 行;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 为 artifact hash gate 增加自动生成脚本,避免 generated TSV 变更后手工更新 hash。
|
||
2. 将 promotion family DOM rows 扩展到 ini-panel workflow overview 的实际挂载 DOM,
|
||
让 release URL workflow 和 real simulation 页面具备一致可见证据。
|
||
3. 继续保持 inventory baseline 不变,只推进 source-derived evidence/report/gate。
|
||
|
||
### 十六、2026-06-18 Fast Follow: Hash Tool And INI Panel Promotion DOM
|
||
|
||
按“减少测试、快速大幅度推进”的要求,本批只跑少量贴近改动的 gate,同时完成两个高杠杆
|
||
交付:artifact hash 自动更新工具,以及 ini-panel workflow overview 的 promotion family
|
||
可见 DOM 挂载能力。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 hash 工具:
|
||
- `wasm-port/tools/update_sim_config_boundary_hashes.mjs`;
|
||
- `wasm-port/tools/update_sim_config_boundary_hashes.sh`;
|
||
- hash 工具能力:
|
||
- 读取 `boundary-summary.tsv` 与 `ini-boundary-summary.tsv`;
|
||
- 计算 SHA-256;
|
||
- `--check` 校验 SDK / release validation 中的 hash 常量是否同步;
|
||
- `--write` 自动更新 hash 常量;
|
||
- 避免 generated TSV 变更后手工改 hash;
|
||
- ini-panel workflow overview 新增 promotion family rows DOM 能力:
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilyRowsRenderState()`;
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilyRowsDomContract()`;
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilyRowsDomReadiness()`;
|
||
- `renderIniPanelShellWorkflowOverviewPromotionFamilyRowsState()`;
|
||
- `mountIniPanelShellWorkflowOverviewPromotionFamilyRowsState()`;
|
||
- SDK index 同步导出上述 ini-panel promotion family DOM API;
|
||
- `createIniPanelShellViewModel()` 的 workflow overview API 同步暴露 create/render/mount
|
||
方法;
|
||
- workflow overview contract 纳入对应 `getWorkflowOverviewPromotionFamilyRows*` 方法;
|
||
- UI shell smoke 覆盖:
|
||
- 从 release URL workflow summary 生成 promotion family rows render state;
|
||
- 三行 ready:
|
||
- `virtual-hal-promotion-family-qtdragon-on-abort`;
|
||
- `virtual-hal-promotion-family-vismach-remap-sims`;
|
||
- `virtual-hal-promotion-family-rose-engine-rcone-demo`;
|
||
- DOM-like mount rowCount 为 3;
|
||
- render/mount result 均 ready;
|
||
- promotion analysis 文档新增 Fast Follow: Hash Tool And INI Panel Promotion DOM 小节。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tools/update_sim_config_boundary_hashes.sh --check ok
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- hash 工具只维护 generated boundary artifact 的 evidence hash;
|
||
- ini-panel DOM 只展示已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
2. 将 ini-panel promotion family DOM rows 接入 browser workflow overview smoke,验证真实浏览器
|
||
页面也能看到三条 family row。
|
||
3. 继续推进下一个 source-derived evidence:为 promotion family rows 增加 per-family source
|
||
file drilldown DOM。
|
||
|
||
### 十七、2026-06-18 Promotion Family Source Drilldown DOM
|
||
|
||
继续按“减少测试、快速大幅度推进功能实现”推进,本批实现 promotion family 的 source file
|
||
drilldown:ini-panel 不再只显示 family ready 状态和 source file count,而是能把每个 family
|
||
对应的 LinuxCNC source evidence 展开为 DOM 行。
|
||
|
||
新增实质能力:
|
||
|
||
- `createPromotionFamilySummaryRows()` 输出新增:
|
||
- `sourceFiles`;
|
||
- release readiness report / validation summary / URL workflow summary 保留 promotion family
|
||
source file metadata;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel()` 新增:
|
||
- `promotionFamilyRows` 结构字段;
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilyRowsRenderState()` 新增:
|
||
- `sourceRows`;
|
||
- `sourceFileCount`;
|
||
- `renderIniPanelShellWorkflowOverviewPromotionFamilyRowsState()` 现在渲染:
|
||
- 3 条 promotion family row;
|
||
- 17 条 per-family source file drilldown row;
|
||
- 每条 source row 携带 `workflowOverviewPromotionFamilyFamily` dataset,指向所属 family;
|
||
- 当前 source drilldown:
|
||
- `qtdragon-on-abort`:12 个 source files;
|
||
- `vismach-remap-sims`:3 个 source files;
|
||
- `rose-engine-rcone-demo`:2 个 source files;
|
||
- UI shell smoke 新增关键 source evidence 断言:
|
||
- `qtdragon_multi_joint/qtdragon_xyyz.ini`;
|
||
- `axis/vismach/puma/remap_subs/428remap.ngc`;
|
||
- `axis/rose_engine/rcone_demo.ngc`;
|
||
- promotion analysis 文档新增 Promotion Family Source Drilldown 小节。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source drilldown 只展示已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 ini-panel promotion family source drilldown 接入 browser workflow overview smoke,确认真实
|
||
DOM 中可见 3 个 family 与 17 个 source rows。
|
||
2. 给 source drilldown 增加 per-source status 字段,区分 INI、G-code、remap subroutine 与
|
||
manifest-backed source。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 十八、2026-06-18 Promotion Family Source Status
|
||
|
||
继续减少测试并快速推进功能。本批在上一批 source drilldown 基础上增加 per-source status,
|
||
让 ini-panel workflow overview 能区分每条 source evidence 的类型与 manifest-backed 状态。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 source 分类 helper:
|
||
- `.ini` 标记为 `ini`;
|
||
- `.ngc` 标记为 `gcode`;
|
||
- `remap_subs` / `nc_subroutines` 下的 source 标记为 `remap-subroutine`;
|
||
- 其他 source 标记为 `source`;
|
||
- promotion family source drilldown row 新增:
|
||
- `sourceKind`;
|
||
- `manifestBacked`;
|
||
- `status: "manifest-backed"`;
|
||
- DOM dataset 新增:
|
||
- `workflowOverviewPromotionFamilySourceKind`;
|
||
- `workflowOverviewPromotionFamilyManifestBacked`;
|
||
- `workflowOverviewPromotionFamilySourceStatus`;
|
||
- UI shell smoke 覆盖:
|
||
- QtDragon INI source 为 `ini` + `manifest-backed`;
|
||
- QtDragon on_abort `.ngc` 为 `gcode` + `manifest-backed`;
|
||
- PUMA `remap_subs/428remap.ngc` 为 `remap-subroutine` + `manifest-backed`;
|
||
- DOM row dataset 与 render state source status 一致;
|
||
- promotion analysis 文档新增 Promotion Family Source Status 小节。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source status 只标注已有 source-derived promotion family evidence 的文件类型;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 ini-panel promotion family source status 接入 browser workflow overview smoke,确认真实
|
||
DOM dataset 可见。
|
||
2. 把 source status 聚合成 family-level source-kind counts,例如 `ini=6 gcode=6`。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 十九、2026-06-18 Promotion Family Source Kind Counts
|
||
|
||
继续减少测试并快速推进功能。本批把 source drilldown 的 per-source status 聚合到 family
|
||
层级,让 ini-panel workflow overview 的 family 行直接展示 source-kind counts。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 source kind 聚合 helper:
|
||
- `countPromotionFamilySourceKinds()`;
|
||
- `formatPromotionFamilySourceKindCounts()`;
|
||
- promotion family row 新增:
|
||
- `sourceKindCounts`;
|
||
- `sourceKindSummary`;
|
||
- DOM family row 新增 dataset:
|
||
- `workflowOverviewPromotionFamilySourceKindCounts`;
|
||
- family row 显示文本追加 source-kind summary;
|
||
- 当前聚合结果:
|
||
- `qtdragon-on-abort`:`ini=6 gcode=6`;
|
||
- `vismach-remap-sims`:`ini=1 gcode=1 remap-subroutine=1`;
|
||
- `rose-engine-rcone-demo`:`ini=1 gcode=1`;
|
||
- UI shell smoke 覆盖:
|
||
- render state family counts;
|
||
- DOM family row dataset;
|
||
- DOM family row text;
|
||
- promotion analysis 文档新增 Promotion Family Source Kind Counts 小节。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source-kind counts 只聚合已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 ini-panel promotion family source-kind counts 接入 browser workflow overview smoke,
|
||
确认真实 DOM dataset 可见。
|
||
2. 增加 source drilldown filter/view-model,让 UI 可以按 `ini`、`gcode`、
|
||
`remap-subroutine` 过滤 evidence。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十、2026-06-18 Promotion Family Source Filter ViewModel
|
||
|
||
继续减少测试并快速推进功能。本批把 source drilldown 从“只能展示”推进到“可按类型过滤”,
|
||
让 ini-panel workflow overview 能直接按 `ini`、`gcode`、`remap-subroutine` 查看
|
||
promotion family evidence。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 source kind filter helper:
|
||
- `normalizePromotionFamilySourceKindFilter()`;
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterViewModel()`;
|
||
- shell workflow overview contract 新增:
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterViewModel`;
|
||
- SDK 入口导出新增 filter view-model API;
|
||
- filter view-model 输出:
|
||
- `sourceKindFilters`;
|
||
- `sourceKindCounts`;
|
||
- `totalSourceFileCount`;
|
||
- `filteredSourceFileCount`;
|
||
- `familyRows`;
|
||
- `sourceRows`;
|
||
- 当前过滤结果:
|
||
- `all=17`;
|
||
- `ini=8`;
|
||
- `gcode=8`;
|
||
- `remap-subroutine=1`;
|
||
- `remap-subroutine` 过滤当前只命中:
|
||
- `linuxcnc/configs/sim/axis/vismach/puma/remap_subs/428remap.ngc`;
|
||
- UI shell smoke 覆盖:
|
||
- 默认 `all` filter;
|
||
- `remap-subroutine` filter;
|
||
- family row 过滤结果;
|
||
- workflow overview API surface。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source filter 只过滤已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 promotion family source filter 接入真实 browser workflow overview smoke,确认浏览器
|
||
DOM/控制入口可以切换 `ini`、`gcode`、`remap-subroutine`。
|
||
2. 给 filter view-model 增加 family selector,让用户可同时按 family 与 source kind 缩小
|
||
evidence。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十一、2026-06-18 Promotion Family Source Family Filter
|
||
|
||
继续减少测试并快速推进功能。本批在 source kind filter 基础上增加 family selector,让
|
||
ini-panel workflow overview 可以同时按 promotion family 与 source kind 缩小 evidence。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 family filter helper:
|
||
- `normalizePromotionFamilyFilter()`;
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterViewModel()` 新增参数:
|
||
- `familyId`;
|
||
- `sourceKind`;
|
||
- filter view-model 新增输出:
|
||
- `selectedFamilyId`;
|
||
- `familyFilters`;
|
||
- `scopedSourceFileCount`;
|
||
- 当前 family filter totals:
|
||
- `all=17`;
|
||
- `virtual-hal-promotion-family-qtdragon-on-abort=12`;
|
||
- `virtual-hal-promotion-family-vismach-remap-sims=3`;
|
||
- `virtual-hal-promotion-family-rose-engine-rcone-demo=2`;
|
||
- 当前组合过滤示例:
|
||
- `familyId=virtual-hal-promotion-family-qtdragon-on-abort`;
|
||
- `sourceKind=gcode`;
|
||
- 结果为 `6/17 source files selected`;
|
||
- scoped family source count 为 `12`;
|
||
- family row summary 为 `gcode=6`;
|
||
- UI shell smoke 覆盖:
|
||
- family filter 列表;
|
||
- QtDragon + G-code 组合过滤;
|
||
- scoped count;
|
||
- filtered source rows 均属于所选 family 和 source kind。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- family filter 只过滤已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 family + source kind filter 接入真实 browser workflow overview smoke,确认 DOM 控件或
|
||
dataset 能驱动组合过滤。
|
||
2. 增加 source filter render/mount DOM surface,让过滤结果不只停留在 view-model。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十二、2026-06-18 Promotion Family Source Filter DOM Surface
|
||
|
||
继续减少测试并快速推进功能。本批把 family + source kind filter 从 view-model 推进到可
|
||
挂载 DOM surface,让 ini-panel workflow overview 可以直接渲染过滤器与过滤后的 source
|
||
evidence。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 source filter DOM contract:
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterDomContract()`;
|
||
- 新增 DOM readiness:
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterDomReadiness()`;
|
||
- 新增 DOM render/mount:
|
||
- `renderIniPanelShellWorkflowOverviewPromotionFamilySourceFilterState()`;
|
||
- `mountIniPanelShellWorkflowOverviewPromotionFamilySourceFilterState()`;
|
||
- shell workflow overview contract 新增:
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterDomContract`;
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterDomReadiness`;
|
||
- `renderWorkflowOverviewPromotionFamilySourceFilterState`;
|
||
- `mountWorkflowOverviewPromotionFamilySourceFilterState`;
|
||
- SDK 入口导出新增 4 个 source filter DOM API;
|
||
- DOM mount dataset 新增:
|
||
- `handoffScope=workflow-overview-promotion-family-source-filter`;
|
||
- `selectedFamilyId`;
|
||
- `selectedSourceKind`;
|
||
- DOM rows 覆盖:
|
||
- family filter rows;
|
||
- source-kind filter rows;
|
||
- filtered source rows;
|
||
- 当前 QtDragon + `gcode` 组合过滤 DOM 输出:
|
||
- `filterRowCount=7`;
|
||
- `sourceFileCount=6`;
|
||
- `rowCount=13`;
|
||
- selected family 为 `virtual-hal-promotion-family-qtdragon-on-abort`;
|
||
- selected source kind 为 `gcode`。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
SDK export smoke ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source filter DOM 只渲染已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 source filter DOM surface 接入真实 browser workflow overview smoke,确认浏览器 DOM
|
||
能渲染 selected family/source kind 和 filtered source rows。
|
||
2. 给 source filter DOM 增加用户可操作的 selector 控件,而不只是渲染当前 view-model。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十三、2026-06-18 Promotion Family Source Filter Selector Controls
|
||
|
||
继续减少测试并快速推进功能。本批把 source filter DOM surface 从“只渲染过滤结果”
|
||
推进到“同时渲染 selector 控件”,为后续 browser workflow overview 交互接入提供直接
|
||
DOM contract。
|
||
|
||
新增实质能力:
|
||
|
||
- source filter DOM contract 新增 controls 节点:
|
||
- selector:`[data-workflow-overview-promotion-family-source-filter-controls]`;
|
||
- required node:`controls`;
|
||
- DOM readiness 新增 `controlsNode` 检查;
|
||
- DOM render/mount 新增 `controlsNode` 参数;
|
||
- source filter DOM render 新增两个 selector controls:
|
||
- family selector;
|
||
- source-kind selector;
|
||
- selector controls dataset 新增:
|
||
- `workflowOverviewPromotionFamilySourceFilterControl`;
|
||
- `workflowOverviewPromotionFamilySourceFilterControlValue`;
|
||
- `workflowOverviewPromotionFamilySourceFilterSelect`;
|
||
- `workflowOverviewPromotionFamilySourceFilterOption`;
|
||
- `workflowOverviewPromotionFamilySourceFilterCount`;
|
||
- `workflowOverviewPromotionFamilySourceFilterSelected`;
|
||
- render result 新增:
|
||
- `controlCount=2`;
|
||
- 当前 QtDragon + `gcode` 组合 selector 输出:
|
||
- family control value 为 `virtual-hal-promotion-family-qtdragon-on-abort`;
|
||
- source-kind select value 为 `gcode`;
|
||
- selected `gcode` option count 为 `6`;
|
||
- rows 仍为 `filterRowCount=7`、`sourceFileCount=6`、`rowCount=13`。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- selector controls 只承载已有 source-derived promotion family evidence 的过滤状态;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 给 source filter selector controls 增加 change handler/action-plan,让控件选择能生成新的
|
||
filtered view-model。
|
||
2. 将 source filter selector controls 接入真实 browser workflow overview smoke,确认真实 DOM
|
||
中可见 family/source-kind selector 与 filtered rows。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十四、2026-06-18 Promotion Family Source Filter Selection Workflow
|
||
|
||
继续减少测试并快速推进功能。本批把 source filter selector controls 从“可显示选择状态”
|
||
推进到“可读取控件选择并生成新的 filtered view-model”,为后续真实 browser 交互接入
|
||
补齐 workflow 层。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 selector action-plan:
|
||
- `createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterSelectionActionPlan()`;
|
||
- 新增 selector change workflow:
|
||
- `handleIniPanelShellWorkflowOverviewPromotionFamilySourceFilterSelectionChange()`;
|
||
- shell workflow overview contract 新增:
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterSelectionActionPlan`;
|
||
- `handleWorkflowOverviewPromotionFamilySourceFilterSelectionChange`;
|
||
- shell view-model 新增:
|
||
- `createWorkflowOverviewPromotionFamilySourceFilterSelectionActionPlan`;
|
||
- `handleWorkflowOverviewPromotionFamilySourceFilterSelectionChange`;
|
||
- SDK 入口导出新增 2 个 selector workflow API;
|
||
- selection change workflow 能从 controls DOM 读取:
|
||
- family select value;
|
||
- source-kind select value;
|
||
- selection change workflow 输出:
|
||
- `actionPlan`;
|
||
- 新 `viewModel`;
|
||
- 可选 `renderResult`;
|
||
- 当前 smoke 路径:
|
||
- 原状态:`virtual-hal-promotion-family-qtdragon-on-abort` + `gcode`;
|
||
- 新选择:`virtual-hal-promotion-family-rose-engine-rcone-demo` + `all`;
|
||
- 新结果:`2/17 source files selected`;
|
||
- scoped family source count 为 `2`;
|
||
- DOM re-render 后包含 `linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc`。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
SDK export smoke ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- selector workflow 只读取/重渲染已有 source-derived promotion family evidence;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 selector change workflow 接入真实 browser workflow overview smoke,确认真实 DOM
|
||
change 后能重渲染 filtered rows。
|
||
2. 给 selector controls 增加 browser event binding helper,封装 `change` 事件与 action-plan
|
||
workflow。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十五、2026-06-18 Promotion Family Source Filter Event Binding
|
||
|
||
继续减少测试并快速推进功能。本批把 selector change workflow 推进到可复用 browser event
|
||
binding helper,让 source filter controls 的 `change` 事件可以直接触发 action-plan workflow
|
||
并重渲染 filtered rows。
|
||
|
||
新增实质能力:
|
||
|
||
- 新增 event binding helper:
|
||
- `bindIniPanelShellWorkflowOverviewPromotionFamilySourceFilterSelectionControls()`;
|
||
- shell workflow overview contract 新增:
|
||
- `bindWorkflowOverviewPromotionFamilySourceFilterSelectionControls`;
|
||
- shell view-model 新增:
|
||
- `bindWorkflowOverviewPromotionFamilySourceFilterSelectionControls`;
|
||
- SDK 入口导出新增 binding helper;
|
||
- binding helper 输出:
|
||
- `boundControlCount`;
|
||
- `controlIds`;
|
||
- `lastChange`;
|
||
- `triggerChange()`;
|
||
- `unbind()`;
|
||
- 当前 smoke 路径:
|
||
- 绑定 family 与 source-kind 两个 select;
|
||
- 将 family select 改为 `virtual-hal-promotion-family-rose-engine-rcone-demo`;
|
||
- 将 source-kind select 改为 `all`;
|
||
- 触发 `change`;
|
||
- DOM re-render 后 source row count 为 `2`;
|
||
- `lastChange.selectedSourceKind=all`;
|
||
- `unbind()` 返回 `{ unbound: 2 }`。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
SDK export smoke ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- event binding 只绑定 UI controls 到已有 source-derived promotion family evidence
|
||
filter workflow;
|
||
- virtual HAL 已满足 Web 方式数控系统仿真系统,并在仿真范围内替代 LinuxCNC
|
||
realtime HAL、`halcmd`、motion controller;
|
||
- virtual HAL 仍不提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI、native
|
||
HAL module ABI、Python UI process emulation、Python remap runtime、tool DB process
|
||
protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked;
|
||
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 source filter event binding 接入真实 browser workflow overview smoke,确认真实 DOM
|
||
change 后能重渲染 filtered rows。
|
||
2. 把 source filter controls 放进实际 workflow overview 页面结构,而不只是在 helper 层验证。
|
||
3. 把 hash 工具接入 release readiness / SDK smoke,使 generated TSV drift 能在常规 gate
|
||
中自动暴露。
|
||
|
||
### 二十六、2026-06-18 真实仿真页 Promotion Candidate 可见证据
|
||
|
||
继续按“减少测试、快速大幅度推进功能实现”推进。本批把 sim config promotion
|
||
candidate report 从 SDK / release artifact 层推进到真实 browser simulation 页面,让操作员可在
|
||
AXIS-style diagnostics 区直接看到 candidate evidence 摘要。
|
||
|
||
新增实质能力:
|
||
|
||
- 真实仿真页 diagnostics 区新增 promotion candidate summary panel;
|
||
- 新增 browser summary API:
|
||
- `getVirtualHalPromotionCandidateSummary()`;
|
||
- `exportDiagnosticsArtifact()` 新增:
|
||
- `virtualHalPromotionCandidateSummary`;
|
||
- summary 明确暴露:
|
||
- 首选推进案例:`qtdragon-multi-joint-on-abort`;
|
||
- 首选 INI:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini`;
|
||
- 首选 G-code:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc`;
|
||
- candidate ready count:`8/8`;
|
||
- family count:`3`;
|
||
- source file count:`17`;
|
||
- browser diagnostics evidence:`8/8 explicit`;
|
||
- inventory baseline:`executed=28 passed=28 skipped=131 unexpected_fail=0`;
|
||
- 页面 body dataset 新增:
|
||
- `promotionCandidateReady`;
|
||
- `promotionCandidateCount`;
|
||
- `promotionCandidatePreferred`;
|
||
- 真实 browser smoke 新增 DOM/API/artifact 断言,确认 candidate summary 可见且首选
|
||
QtDragon multi-joint 案例已进入 browser evidence;
|
||
- SDK smoke 期望同步接受 promotion family rows 携带 `sourceFiles`,保留更强的 source
|
||
evidence。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh ok
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- candidate summary 只汇总已有 LinuxCNC source-derived virtual HAL report;
|
||
- virtual HAL 仍只作为 Web 仿真替代层,不提供 Linux kernel hard-realtime ABI、外部硬件
|
||
驱动 ABI、native HAL module ABI、Python UI process emulation、Python remap runtime、
|
||
tool DB process protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 把 promotion candidate summary 接入 release artifact URL workflow 页面展示,让外部 URL
|
||
验证也能直接看到首选 candidate、source files 和 baseline。
|
||
2. 在真实 workflow overview browser smoke 中验证 source filter event binding 的 DOM
|
||
change 交互,闭合 helper 到页面的链路。
|
||
3. 将 `qtdragon-multi-joint-on-abort` 扩展为可点击的 diagnostics drilldown,显示 INI、
|
||
G-code、required virtual HAL reports 和 blocked-family exclusion 明细。
|
||
|
||
### 二十七、2026-06-18 Release URL Workflow Candidate Summary
|
||
|
||
继续按“减少测试、快速大幅度推进功能实现”推进。本批把上一轮真实仿真页导出的
|
||
`virtualHalPromotionCandidateSummary` 接入 release artifact URL workflow,让外部 URL
|
||
验证和 INI-panel workflow overview 都能直接显示首选 promotion candidate 证据。
|
||
|
||
新增实质能力:
|
||
|
||
- `loadProjectReleaseReadinessArtifactUrlWorkflow()` 现在保留 fetched diagnostics artifact:
|
||
- 新字段:`diagnosticsArtifact`;
|
||
- 来源为 diagnostics URL 返回的
|
||
`real-browser-simulation-diagnostics-artifact`;
|
||
- `createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel()` 新增 rows:
|
||
- `virtual-hal-promotion-candidate-summary`;
|
||
- `virtual-hal-promotion-candidate`;
|
||
- `virtual-hal-promotion-candidate-ini`;
|
||
- `virtual-hal-promotion-candidate-gcode`;
|
||
- `virtual-hal-promotion-candidate-count`;
|
||
- `virtual-hal-promotion-candidate-baseline`;
|
||
- `loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl()` 同步透传:
|
||
- `diagnosticsArtifact`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel()`
|
||
同步显示 candidate summary rows;
|
||
- release URL workflow 现在可以直接展示:
|
||
- 首选推进案例:`qtdragon-multi-joint-on-abort`;
|
||
- INI:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini`;
|
||
- G-code:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc`;
|
||
- candidate readiness:`8/8 ready`;
|
||
- baseline:`executed=28 passed=28 skipped=131 unexpected_fail=0`;
|
||
- SDK URL workflow smoke 和 INI-panel UI shell smoke 同步验证这些 rows。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh ok
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- URL workflow 只透传并展示 diagnostics artifact 中已有 source-derived candidate
|
||
summary;
|
||
- virtual HAL 仍只作为 Web 仿真替代层,不提供 Linux kernel hard-realtime ABI、外部硬件
|
||
驱动 ABI、native HAL module ABI、Python UI process emulation、Python remap runtime、
|
||
tool DB process protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 在真实 workflow overview browser smoke 中验证 release URL workflow 页面能渲染新增
|
||
candidate summary rows。
|
||
2. 将 `qtdragon-multi-joint-on-abort` 做成 drilldown view,展示 INI、G-code、
|
||
required virtual HAL reports、source files 和 blocked-family exclusion。
|
||
3. 把 source filter event binding 接入真实 browser workflow overview smoke,确认真实 DOM
|
||
change 后能重渲染 filtered source rows。
|
||
|
||
### 二十八、2026-06-18 Workflow Overview Browser Candidate Summary
|
||
|
||
继续按“减少测试、快速大幅度推进功能实现”推进。本批把 release artifact URL workflow
|
||
中的 promotion candidate summary 推进到真实 workflow overview browser smoke,确认真实
|
||
页面 DOM 能渲染并展示首选 candidate 证据。
|
||
|
||
新增实质能力:
|
||
|
||
- `ini_panel_workflow_overview_smoke.html` 的 diagnostics artifact fixture 新增:
|
||
- `virtualHalPromotionCandidateSummary`;
|
||
- 真实 workflow overview browser 路径现在验证:
|
||
- diagnostics artifact 中 candidate summary ready;
|
||
- URL workflow render rows 包含 `virtual-hal-promotion-candidate-summary`;
|
||
- summary view-model 暴露首选 candidate;
|
||
- 真实 DOM 中可读取:
|
||
- `virtual-hal-promotion-candidate`;
|
||
- `virtual-hal-promotion-candidate-count`;
|
||
- 真实页面可见证据保持:
|
||
- 首选推进案例:`qtdragon-multi-joint-on-abort`;
|
||
- INI:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini`;
|
||
- G-code:`linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc`;
|
||
- candidate readiness:`8/8 ready`;
|
||
- baseline:`executed=28 passed=28 skipped=131 unexpected_fail=0`。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- 真实 browser smoke 只验证已有 source-derived candidate summary 被 URL workflow 页面
|
||
渲染;
|
||
- virtual HAL 仍只作为 Web 仿真替代层,不提供 Linux kernel hard-realtime ABI、外部硬件
|
||
驱动 ABI、native HAL module ABI、Python UI process emulation、Python remap runtime、
|
||
tool DB process protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 将 `qtdragon-multi-joint-on-abort` 做成 drilldown view,展示 INI、G-code、
|
||
required virtual HAL reports、source files 和 blocked-family exclusion。
|
||
2. 把 source filter event binding 接入真实 browser workflow overview smoke,确认真实 DOM
|
||
change 后能重渲染 filtered source rows。
|
||
3. 给 release URL workflow 增加 candidate summary 缺失的 negative fixture,防止后续
|
||
diagnostics artifact 回退时仍被误判 ready。
|
||
|
||
### 二十九、2026-06-18 Workflow Overview Source Filter 真实交互
|
||
|
||
继续按“减少测试、快速大幅度推进功能实现”推进。本批把已存在的 promotion family
|
||
source filter helper 接入真实 workflow overview 页面,而不只停留在 UI helper / Node
|
||
smoke 层。
|
||
|
||
新增实质能力:
|
||
|
||
- `workflow-overview.html` 新增真实 Promotion family source filter 面板:
|
||
- `data-workflow-overview-promotion-family-source-filter`;
|
||
- `data-workflow-overview-promotion-family-source-filter-controls`;
|
||
- `data-workflow-overview-promotion-family-source-filter-rows`;
|
||
- release artifact URL workflow 成功后自动生成:
|
||
- promotion family rows render state;
|
||
- source filter view-model;
|
||
- source filter DOM mount result;
|
||
- source filter select change binding;
|
||
- 页面 API 新增真实 source filter helper 暴露:
|
||
- `getWorkflowOverviewPromotionFamilyRowsRenderState()`;
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterViewModel()`;
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterDomContract()`;
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterDomReadiness()`;
|
||
- `getWorkflowOverviewPromotionFamilySourceFilterSelectionActionPlan()`;
|
||
- `handleWorkflowOverviewPromotionFamilySourceFilterSelectionChange()`;
|
||
- `bindWorkflowOverviewPromotionFamilySourceFilterSelectionControls()`;
|
||
- `renderWorkflowOverviewPromotionFamilySourceFilterState()`;
|
||
- `mountWorkflowOverviewPromotionFamilySourceFilterState()`;
|
||
- 真实 browser smoke 现在验证:
|
||
- 默认 source filter 为 `all / all`,展示 `17` 个 source file;
|
||
- 两个 select 控件已绑定;
|
||
- 将 family select 改为
|
||
`virtual-hal-promotion-family-rose-engine-rcone-demo` 后,真实 DOM 重渲染为该 family
|
||
的 2 个 source file;
|
||
- body dataset 同步记录 selected family 和 filtered source count;
|
||
- 可从真实 DOM 读取
|
||
`linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc` source row。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
git diff --check ok
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh ok
|
||
```
|
||
|
||
语义边界:
|
||
|
||
- 本批没有降低 inventory skip count;
|
||
- 当前 baseline 仍是 `executed=28`、`passed=28`、`skipped=131`、
|
||
`unexpectedFail=0`;
|
||
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
|
||
- source filter 只筛选 release diagnostics 中已有的 source-derived promotion family
|
||
evidence;
|
||
- virtual HAL 仍只作为 Web 仿真替代层,不提供 Linux kernel hard-realtime ABI、外部硬件
|
||
驱动 ABI、native HAL module ABI、Python UI process emulation、Python remap runtime、
|
||
tool DB process protocol 或 external user-M process execution;
|
||
- `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS`、`UPSTREAM-DEMO` 仍保持
|
||
locked。
|
||
|
||
下一步工作建议:
|
||
|
||
1. 给 release URL workflow 增加 candidate summary 缺失的 negative fixture,防止后续
|
||
diagnostics artifact 回退时仍被误判 ready。
|
||
2. 把 source filter 当前选中状态持久化到 URL hash 或 session state,让刷新页面后仍保留
|
||
family/source-kind 筛选。
|
||
3. 将 source filter 与 candidate drilldown 联动:点击 source row 时自动切换
|
||
`qtdragon-multi-joint-on-abort`、PUMA 或 rose-engine 对应 drilldown。
|
||
|
||
### 三十、2026-06-18 virtual HAL 实质功能收尾
|
||
|
||
按“尽快结束 virtual HAL 相关实质性功能”的要求,本批不再扩展新的 virtual HAL UI 或
|
||
runtime 能力,只补最后一个 release diagnostics 防回退 gate,然后将 virtual HAL 工作从
|
||
“功能推进”转为“维护冻结”。
|
||
|
||
新增收尾能力:
|
||
|
||
- release browser diagnostics validation 现在强制要求
|
||
`virtualHalPromotionCandidateSummary`;
|
||
- summary 必须完整匹配当前 source-derived promotion evidence:
|
||
- `apiName=real-browser-simulation-promotion-candidate-summary`;
|
||
- `ready=true`;
|
||
- `candidateCount=8`;
|
||
- `readyCandidateCount=8`;
|
||
- `familyCount=3`;
|
||
- `sourceFileCount=17`;
|
||
- `preferredCandidateId=qtdragon-multi-joint-on-abort`;
|
||
- `explicitBrowserDiagnosticsCount=8`;
|
||
- inventory baseline 仍为
|
||
`executed=28 passed=28 skipped=131 unexpected_fail=0`;
|
||
- release URL workflow negative fixture 已覆盖缺失
|
||
`virtualHalPromotionCandidateSummary` 的情况;
|
||
- SDK surface negative fixture 已覆盖 summary 缺失和 ready count 回退;
|
||
- release gate manifest URL workflow summary 期望已同步新 rows。
|
||
|
||
本批减少测试,只执行贴近改动的验证:
|
||
|
||
```text
|
||
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh ok
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh ok
|
||
git diff --check ok
|
||
```
|
||
|
||
virtual HAL 结论:
|
||
|
||
- virtual HAL 的实质功能推进到此结束;
|
||
- 后续不再建议继续增加 virtual HAL runtime/UI 功能;
|
||
- virtual HAL 后续只做 bugfix、fixture drift 修复、release gate 回归维护;
|
||
- 后续主线应转向非 virtual HAL 任务,例如真实 LinuxCNC-backed interpreter / simulation
|
||
workflows、release packaging、业务 UI、文档交付或其他项目目标。
|
||
|
||
后续工作建议:
|
||
|
||
1. 暂停 virtual HAL 新功能,只保留现有 smoke/gate 维护。
|
||
2. 选择下一个非 virtual HAL 主线任务,优先做能直接提升产品完成度的功能。
|
||
3. 如必须碰 virtual HAL,只处理 failing gate 或 source manifest drift,不再扩展能力边界。
|