1766 lines
72 KiB
Plaintext
1766 lines
72 KiB
Plaintext
项目整体完成情况与后续执行计划
|
||
|
||
生成时间:2026-06-15 CST
|
||
|
||
本文件接替 `text12.txt`。后续工作按 `text13.txt` 执行;除非明确要求审计旧记录,
|
||
不要再回到 `text1/text2/text3/text4/text5/text6/text7/text8/text9/text10/text11/text12`
|
||
扩展进度。`text12.txt` 作为历史归档保留。
|
||
|
||
一、第一原则:加快实质性推进
|
||
|
||
后续批次必须以“实质性能力优先”为第一遵守原则。
|
||
|
||
1. 优先级从高到低:
|
||
|
||
- OPFS/session persistence;
|
||
- SDK/API surface;
|
||
- browser/UI workflow;
|
||
- sim config coverage promotion;
|
||
- host/runtime boundary proof;
|
||
- 文档化可执行工作流。
|
||
|
||
2. 每批默认应产出至少一种可直接复用的能力:
|
||
|
||
- 可调用 helper;
|
||
- 可复用 API;
|
||
- 可验证用户流程;
|
||
- 可执行 gate;
|
||
- 可提升覆盖面的 runtime boundary proof;
|
||
- 能直接指导下一步实现的设计/清单。
|
||
|
||
3. 暂停低收益推进:
|
||
|
||
- 不再把“局部常量化、路径变量收敛、断言分组整理”作为主目标;
|
||
- 只有当它支撑可复用 workflow/API/gate 时,才允许做测试胶水;
|
||
- 禁止为了推进而扩大 CNC 语义边界;
|
||
- 禁止启动性能测试,除非已有明确用户流程需要性能基线。
|
||
|
||
4. LinuxCNC 仍是唯一 CNC 语义来源:
|
||
|
||
- G-code、remap、tool、parameter、planner、kinematics、user-M、tool DB、Python remap
|
||
等语义必须来自 LinuxCNC upstream 或 vendored LinuxCNC C/C++/配置/脚本源码;
|
||
- JS/browser 只允许做 build、source sync、runtime shim、filesystem staging、OPFS、
|
||
WASM/browser boundary、测试胶水、文档和机器可读 gate/artifact;
|
||
- 不在 JS 中重写 G-code 或 CNC 语义;
|
||
- 不修改 vendored LinuxCNC 源文件来让测试通过;
|
||
- 不把 full-process/HAL/UI/Python/tool DB 依赖伪装成 standalone pass;
|
||
- 不把 expected failure 硬改成 pass,除非已有 LinuxCNC-owned runtime proof,并且
|
||
native、Node、browser gate 都按顺序通过;
|
||
- browser 不能依赖目录枚举。
|
||
|
||
二、续接状态与防重规则
|
||
|
||
1. 当前续接点。
|
||
|
||
`text12.txt` 已推进到:
|
||
|
||
```text
|
||
二十六、2026-06-15 继续执行记录:INI panel shell session handoff summary schema gate
|
||
```
|
||
|
||
本文件从 `text13.txt` 重新开始记录后续进度。
|
||
|
||
2. 每轮开始前必须先执行:
|
||
|
||
```bash
|
||
git status --short
|
||
git log -5 --oneline
|
||
tail -n 120 text13.txt
|
||
awk '/^[一二三四五六七八九十百]+、/ {print}' text13.txt | sort | uniq -d
|
||
```
|
||
|
||
执行规则:
|
||
|
||
- 如果 `git status --short` 是 clean,且最新提交已经包含当前建议工作,不要重复追加记录;
|
||
- 每轮只追加一个新的中文编号记录;
|
||
- 提交前再次检查标题唯一性;
|
||
- `text13.txt` 只记录新的后续进度,不复制 `text12.txt` 的长历史;
|
||
- 每批完成后,如果要写记录,先写 `text13.txt`,再提交该批代码和记录;
|
||
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard;
|
||
- `text12.txt` 不再追加新进度,除非明确要求审计或修正历史记录。
|
||
|
||
三、当前完成情况摘要
|
||
|
||
1. 当前工作树状态。
|
||
|
||
切换到 `text13.txt` 时工作树包含上一批未提交改动:
|
||
|
||
```text
|
||
M text12.txt
|
||
M wasm-port/docs/panel-entry.md
|
||
M wasm-port/runtime/ui/ini-panel/launch.html
|
||
M wasm-port/runtime/ui/ini-panel/ui-shell.js
|
||
M wasm-port/tests/browser/ini_panel_launch_smoke.html
|
||
M wasm-port/tests/browser/ini_panel_shell_integration_workflow_smoke.html
|
||
M wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
M wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
M wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
M wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
```
|
||
|
||
上述改动对应 `text12.txt` 第 26 条:shell session handoff summary schema gate。
|
||
|
||
2. 最近提交:
|
||
|
||
```text
|
||
01817f6 推进 INI 面板 shell handoff summary browser API
|
||
b31b9a2 推进 INI 面板 shell session handoff summary
|
||
ee665c4 推进 INI 面板 shell integration workflow plan
|
||
a663c8d 推进 INI 面板 shell integration browser workflow smoke
|
||
1f9a8c3 推进 INI 面板 shell integration readiness helper
|
||
```
|
||
|
||
3. 关键基线保持稳定。
|
||
|
||
- `linuxcnc/nc_files` native Layer 1:
|
||
- `total 107`
|
||
- `pass 101`
|
||
- `expected_fail 6`
|
||
- `unexpected_fail 0`
|
||
- `linuxcnc/configs/sim` native Layer 2:
|
||
- `total 159`
|
||
- `pass 151`
|
||
- `expected_fail 8`
|
||
- `unexpected_fail 0`
|
||
- Node sim-config inventory:
|
||
- `executed=28`
|
||
- `passed=28`
|
||
- `skipped=131`
|
||
- `unexpected_fail=0`
|
||
|
||
4. blocked runtime family 仍未 promotion。
|
||
|
||
仍 blocked,不允许 promotion:
|
||
|
||
- `L4-USER-M-PROCESS`
|
||
- `L4-TOOL-DB`
|
||
- `L4-PYTHON-REMAP`
|
||
|
||
当前 host 仍按缺少 LinuxCNC host runtime 处理,不执行任何:
|
||
|
||
```bash
|
||
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
|
||
ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh
|
||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh
|
||
```
|
||
|
||
四、当前实质能力进展
|
||
|
||
1. INI panel/UI helper 能力。
|
||
|
||
当前 UI helper 已覆盖:
|
||
|
||
- run summary;
|
||
- run workflow;
|
||
- session snapshot summary;
|
||
- session load summary;
|
||
- machine file save/load summary;
|
||
- panel state summary;
|
||
- session snapshot save/restore workflow;
|
||
- entry manifest、launcher link view-model、shell view-model;
|
||
- read-only control-page controller;
|
||
- read-only control-page refresh workflow;
|
||
- read-only control-page session readiness workflow;
|
||
- shell integration readiness、workflow plan、session handoff summary;
|
||
- shell session handoff summary versioned schema 与 compatibility predicate。
|
||
|
||
当前聚合验证入口:
|
||
|
||
```bash
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
```
|
||
|
||
2. Browser/UI workflow 验证。
|
||
|
||
当前 browser INI panel smoke 覆盖真实 OPFS/session persistence workflow 与外部 shell handoff:
|
||
|
||
```bash
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
五、当前必须保持通过的验证入口
|
||
|
||
每批后续改动至少运行:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
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
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果涉及 browser interpreter smoke,再运行:
|
||
|
||
```bash
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
涉及 native baseline 或大范围 source/staging 改动时,再运行:
|
||
|
||
```bash
|
||
wasm-port/tests/native/verify_nc_files.sh
|
||
wasm-port/tests/native/verify_sim_configs.sh
|
||
```
|
||
|
||
六、下一步建议
|
||
|
||
继续推进 SDK/API surface 与 browser/UI workflow 的交界。下一批建议增加一个
|
||
`createIniPanelShellSessionHandoffCompatibilityReport()` 或等价 helper,把 summary schema
|
||
支持状态、缺失字段、version/apiName mismatch 与 blocking reasons 合并成可显示报告,便于外部
|
||
shell 在 UI 中解释为什么不能消费 handoff summary;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
一、2026-06-15 继续执行记录:INI panel shell session handoff compatibility report
|
||
|
||
本轮按“第一原则:加快实质性推进”创建 `text13.txt` 续接文件,并继续推进 SDK/API
|
||
surface 与 browser/UI workflow 的交界:新增 shell session handoff compatibility report,让外部
|
||
shell 能读取 display-ready 诊断,判断 handoff summary 是否可消费以及失败原因。
|
||
|
||
完成内容:
|
||
|
||
- 新建 `text13.txt`,接替 `text12.txt` 作为后续执行记录;
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffCompatibilityReport()`;
|
||
- compatibility report 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-compatibility-report"`;
|
||
- `reportVersion: 1`;
|
||
- `phase: "ready" | "blocked"`;
|
||
- `compatible`;
|
||
- `summarySupported`;
|
||
- `handoffReady`;
|
||
- `schema`;
|
||
- `summary`;
|
||
- `missingFields`;
|
||
- `mismatchFields`;
|
||
- `blockingReasons`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffCompatibilityReport`;
|
||
- `createShellSessionHandoffCompatibilityReport`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffCompatibilityReport`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffCompatibilityReport()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 的 compatibility report:
|
||
- `compatible === true`;
|
||
- `summarySupported === true`;
|
||
- `missingFields` 为空;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell handoff workflow 能读取
|
||
compatibility report,并确认当前 report 无 blocking reasons;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready report 完整 shape;
|
||
- 错误 `summaryVersion` 进入 `mismatchFields`;
|
||
- 缺字段进入 `missingFields`;
|
||
- `null` summary 返回完整缺字段列表;
|
||
- blocked workflow 的 `blockingReasons` 和 `compatible === false`;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_ui_shell.mjs`、
|
||
`verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议把 compatibility report 用到一个真实的外部 shell
|
||
display view-model 或 DOM smoke 中,让 launch 页面能直接展示 handoff 是否可消费、缺失字段和
|
||
blocking reasons;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
二、2026-06-15 继续执行记录:INI panel shell handoff display view-model
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 browser/UI workflow,把上一批 compatibility
|
||
report 接入可复用 display view-model 与真实 launch DOM,让外部 shell 能直接展示 handoff
|
||
是否可消费、缺失字段、mismatch fields 与 blocking reasons。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffDisplayViewModel()`;
|
||
- display view-model 输出:
|
||
- `phase: "ready" | "blocked"`;
|
||
- `title`;
|
||
- `statusText`;
|
||
- `detailText`;
|
||
- `rows`;
|
||
- `rows` 固定覆盖:
|
||
- `summary-supported`;
|
||
- `handoff-ready`;
|
||
- `missing-fields`;
|
||
- `mismatch-fields`;
|
||
- `blocking-reasons`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffDisplayViewModel`;
|
||
- `createShellSessionHandoffDisplayViewModel`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffDisplayViewModel`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffDisplayViewModel()`;
|
||
- `launch.html` 新增只读 DOM 展示区域:
|
||
- `[data-handoff-status]`;
|
||
- `[data-handoff-rows]`;
|
||
- `[data-handoff-value="missing-fields"]`;
|
||
- `[data-handoff-value="blocking-reasons"]`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- display view-model `statusText === "Ready"`;
|
||
- display rows 数量为 5;
|
||
- DOM status 为 `Ready: No blocking reasons`;
|
||
- DOM missing fields 为 `none`;
|
||
- DOM blocking reasons 为 `none`;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
display view-model,并确认 display status/detail 与 compatibility report 一致;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready display view-model 完整 shape;
|
||
- 错误 `summaryVersion` 显示到 `mismatch-fields` row;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 display view-model shape;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API/DOM 节点;
|
||
- 未新增控制按钮;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 OPFS/session persistence 与 browser/UI workflow 的交界。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffSnapshot()` 或等价 helper,把 integration readiness、handoff
|
||
summary、compatibility report、display view-model 聚合成单次外部 shell snapshot API,减少外部
|
||
shell 多次读取 launch API 的组合风险;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
三、2026-06-15 继续执行记录:INI panel shell handoff snapshot API
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 OPFS/session persistence 与 browser/UI workflow
|
||
的交界,新增只读 shell handoff snapshot API,把 integration readiness、handoff summary、
|
||
compatibility report 和 display view-model 聚合成单次外部 shell 读取。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffSnapshot()`;
|
||
- snapshot 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-snapshot"`;
|
||
- `snapshotVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `readiness`;
|
||
- `summary`;
|
||
- `compatibilityReport`;
|
||
- `displayViewModel`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffSnapshot`;
|
||
- `createShellSessionHandoffSnapshot`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffSnapshot`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffSnapshot()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- snapshot version 为 1;
|
||
- snapshot `ready === true`;
|
||
- snapshot readiness 与独立 readiness API 一致;
|
||
- snapshot summary 与独立 summary API 一致;
|
||
- snapshot display view-model 与独立 display API 一致;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取 snapshot,
|
||
并确认 snapshot display status 为 `Ready`;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready snapshot 完整 shape;
|
||
- default snapshot 包含 5 个 display rows;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 snapshot 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议在 launch 页面或等价外部 shell view 中增加一个只读
|
||
snapshot consumer helper,把 snapshot 直接压成 launch-side render state,并对 blocked snapshot
|
||
做 focused browser smoke;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
四、2026-06-15 继续执行记录:INI panel shell handoff render-state consumer
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 browser/UI workflow,新增只读 shell handoff
|
||
render-state consumer,把 handoff snapshot 压成 launch 页面和外部 shell 可直接渲染的稳定状态。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffRenderState()`;
|
||
- render-state 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-render-state"`;
|
||
- `renderStateVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `title`;
|
||
- `statusText`;
|
||
- `detailText`;
|
||
- `statusLine`;
|
||
- `rows`;
|
||
- `dataset.handoffPhase`;
|
||
- `dataset.handoffReady`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffRenderState`;
|
||
- `createShellSessionHandoffRenderState`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffRenderState`;
|
||
- `launch.html` 改为从 render-state 渲染 `[data-handoff-status]`、
|
||
`[data-handoff-rows]` 和 `[data-handoff-shell]` 的 phase/readiness dataset;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffRenderState()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- render-state version 为 1;
|
||
- render-state `ready === true`;
|
||
- render-state status line 为 `Ready: No blocking reasons`;
|
||
- render-state rows 与 display view-model rows 一致;
|
||
- DOM `[data-handoff-shell]` 输出 `handoffPhase=ready` 与 `handoffReady=true`;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
render-state,并确认 status line 与 display rows 一致;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready render-state 完整 shape;
|
||
- blocked snapshot render-state 的 `Blocked: summaryVersion` focused case;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 render-state 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API/DOM dataset;
|
||
- 未新增控制按钮;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 SDK/API surface 与 browser/UI workflow 的交界。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffActionPlan()` 或等价 helper,把 render-state 的 ready/blocked
|
||
状态转成外部 shell 可执行的下一步计划(例如 target page、required methods、blocked reasons、
|
||
display rows),但仍只描述流程,不新增控制按钮,不解析 G-code。
|
||
|
||
五、2026-06-15 继续执行记录:INI panel shell handoff action plan
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 SDK/API surface 与 browser/UI workflow 的交界,
|
||
新增只读 shell handoff action-plan helper,把 snapshot/render-state 转成外部 shell 可消费的
|
||
下一步流程描述。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffActionPlan()`;
|
||
- action-plan 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-action-plan"`;
|
||
- `planVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `statusLine`;
|
||
- `targetPage`;
|
||
- `requiredMethods.loadSessionState`;
|
||
- `requiredMethods.readStatus`;
|
||
- `blockingReasons`;
|
||
- `displayRows`;
|
||
- `nextSteps`;
|
||
- ready plan 输出两个只读流程步骤:
|
||
- `open-control-page`;
|
||
- `read-readonly-status`;
|
||
- blocked plan 输出一个诊断步骤:
|
||
- `resolve-blockers`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffActionPlan`;
|
||
- `createShellSessionHandoffActionPlan`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffActionPlan`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffActionPlan()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- action-plan version 为 1;
|
||
- action-plan `ready === true`;
|
||
- next step id 为 `open-control-page,read-readonly-status`;
|
||
- `requiredMethods.readStatus === "readControlPageStatus"`;
|
||
- `displayRows` 与 render-state rows 一致;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
action-plan,并确认 target page 与 next steps;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready action-plan 完整 shape;
|
||
- default action-plan next steps;
|
||
- blocked/mismatch snapshot action-plan;
|
||
- blocked manifest action-plan `blockingReasons`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 action-plan 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 OPFS/session persistence 与 browser/UI workflow 的交界。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffChecklist()` 或等价 helper,把 action-plan、render-state、
|
||
required methods 和 blocking reasons 压成外部 shell 可显示的 checklist/health rows,并补真实
|
||
browser workflow smoke;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
六、2026-06-15 继续执行记录:INI panel shell handoff checklist
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 OPFS/session persistence 与 browser/UI workflow
|
||
的交界,新增只读 shell handoff checklist helper,把 action-plan、render-state、required
|
||
methods 和 blocking reasons 压成外部 shell 可显示的 health rows。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffChecklist()`;
|
||
- checklist 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-checklist"`;
|
||
- `checklistVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `statusLine`;
|
||
- `checks`;
|
||
- `displayRows`;
|
||
- `nextStepIds`;
|
||
- `blockingReasons`;
|
||
- checklist checks 固定覆盖:
|
||
- `render-state`;
|
||
- `target-page`;
|
||
- `load-session-method`;
|
||
- `read-status-method`;
|
||
- `blocking-reasons`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffChecklist`;
|
||
- `createShellSessionHandoffChecklist`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffChecklist`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffChecklist()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- checklist version 为 1;
|
||
- checklist `ready === true`;
|
||
- 5 个 health checks 全部为 `pass`;
|
||
- `nextStepIds` 为 `open-control-page,read-readonly-status`;
|
||
- `displayRows` 与 render-state rows 一致;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
checklist,并确认 checks 与 nextStepIds;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready checklist 完整 shape;
|
||
- default checklist check 数量;
|
||
- blocked/mismatch checklist health rows;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 checklist 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow 与 OPFS/session persistence 的交界。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffPackage()` 或等价 helper,把 snapshot、render-state、
|
||
action-plan、checklist 和 launch/control method manifests 打包成单次 browser shell 可读取的
|
||
handoff package,并补真实 browser workflow smoke;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
七、2026-06-15 继续执行记录:INI panel shell handoff package
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 browser/UI workflow 与 OPFS/session persistence
|
||
的交界,新增只读 shell handoff package helper,把外部 shell 需要的 handoff artifacts 和方法
|
||
manifest 聚合成单次 browser API 读取。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffPackage()`;
|
||
- package 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-package"`;
|
||
- `packageVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `statusLine`;
|
||
- `manifests.shellIntegration`;
|
||
- `manifests.launchApi`;
|
||
- `manifests.controlPageApi`;
|
||
- `manifests.launchMethods`;
|
||
- `manifests.controlPageMethods`;
|
||
- `snapshot`;
|
||
- `renderState`;
|
||
- `actionPlan`;
|
||
- `checklist`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffPackage`;
|
||
- `createShellSessionHandoffPackage`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffPackage`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffPackage()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- package version 为 1;
|
||
- package `ready === true`;
|
||
- package launch methods 包含 `getShellSessionHandoffPackage`;
|
||
- package control methods 包含 `readControlPageStatus`;
|
||
- package checklist 与独立 checklist API 一致;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能单次读取
|
||
package,并确认 checklist、action-plan 与 control-page methods;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready package 完整 shape;
|
||
- default package 包含新增 launch method;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 package 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffPackageSchema()` 与
|
||
`isSupportedIniPanelShellSessionHandoffPackage()`,为 package 增加 versioned schema 与 focused
|
||
compatibility predicate,便于外部 shell 在消费 package 前做单点兼容性检查;仍保持只读,不新增
|
||
控制按钮,不解析 G-code。
|
||
|
||
八、2026-06-15 继续执行记录:INI panel shell handoff package schema gate
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 browser/UI workflow,为 shell handoff package
|
||
新增 versioned schema 与 focused compatibility predicate,让外部 shell 能在消费 package 前做
|
||
单点 shape 兼容性检查。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffPackageSchema()`;
|
||
- package schema 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-package"`;
|
||
- `packageVersion: 1`;
|
||
- `fields`;
|
||
- `manifestFields`;
|
||
- `ui-shell.js` 新增 `isSupportedIniPanelShellSessionHandoffPackage()`;
|
||
- predicate 检查:
|
||
- package 对象存在;
|
||
- `apiName` 匹配;
|
||
- `packageVersion` 匹配;
|
||
- package 顶层 required fields 存在;
|
||
- `manifests` 对象存在;
|
||
- manifest required fields 存在;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffPackageSchema`;
|
||
- `createShellSessionHandoffPackageSchema`;
|
||
- `isSupportedShellSessionHandoffPackage`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增:
|
||
- `getShellSessionHandoffPackageSchema`;
|
||
- `isSupportedShellSessionHandoffPackage`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口:
|
||
- `getShellSessionHandoffPackageSchema()`;
|
||
- `isSupportedShellSessionHandoffPackage()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- package schema version 为 1;
|
||
- 当前 package 可支持;
|
||
- 错误 package version 被拒绝;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
package schema,并用 predicate 确认 package 可支持;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- package schema 完整 shape;
|
||
- valid package 支持;
|
||
- 错误 version、错误 apiName、缺 package 字段、缺 manifest 字段、null 被拒绝;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 package schema 和 predicate;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow 与文档化可执行工作流。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffPackageReport()` 或等价 helper,把 package schema support、
|
||
missing package fields、missing manifest fields、version/apiName mismatch 和 checklist blocking
|
||
reasons 合并成 display-ready report,便于外部 shell 在拒绝 package 时显示原因;仍保持只读,
|
||
不新增控制按钮,不解析 G-code。
|
||
|
||
九、2026-06-15 继续执行记录:INI panel shell handoff package report
|
||
|
||
本轮按“第一原则:加快实质性推进”继续推进 browser/UI workflow 与文档化可执行工作流,
|
||
新增只读 shell handoff package report,把 package schema support、缺失字段、版本/API mismatch
|
||
和 checklist blocking reasons 合并成外部 shell 可直接显示的诊断。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellSessionHandoffPackageReport()`;
|
||
- package report 输出:
|
||
- `apiName: "ini-panel-shell-session-handoff-package-report"`;
|
||
- `reportVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `packageSupported`;
|
||
- `packageReady`;
|
||
- `statusLine`;
|
||
- `schema`;
|
||
- `package`;
|
||
- `missingPackageFields`;
|
||
- `missingManifestFields`;
|
||
- `mismatchFields`;
|
||
- `blockingReasons`;
|
||
- `rows`;
|
||
- report rows 固定覆盖:
|
||
- `package-supported`;
|
||
- `package-ready`;
|
||
- `missing-package-fields`;
|
||
- `missing-manifest-fields`;
|
||
- `mismatch-fields`;
|
||
- `blocking-reasons`;
|
||
- `createIniPanelShellViewModel()` 新增:
|
||
- `shellSessionHandoffPackageReport`;
|
||
- `createShellSessionHandoffPackageReport`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getShellSessionHandoffPackageReport`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getShellSessionHandoffPackageReport()`;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe:
|
||
- package report `ready === true`;
|
||
- report rows 数量为 6;
|
||
- 当前 report 无 missing package fields;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 能读取
|
||
package report,并确认 package supported 与 report rows;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖:
|
||
- ready package report 完整 shape;
|
||
- version mismatch 输出 `mismatchFields`;
|
||
- 缺 manifest field 输出 `missingManifestFields`;
|
||
- null package 输出全部 missing package fields;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 shell view-model 的 package report 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs`、`verify_ini_panel_entry_docs.mjs` 与
|
||
`docs/panel-entry.md` 同步记录和校验新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增一个只读
|
||
`createIniPanelShellSessionHandoffPackageDisplayViewModel()` 或等价 helper,把 package report
|
||
压成稳定 label/value rows 与 status text,供 launch 页面或外部 shell 直接渲染 package report;
|
||
仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十、2026-06-15 继续执行记录:INI panel workflow overview embedding contract
|
||
|
||
本轮按 `text13.txt` 执行,不再扩展 `text12.txt`。继续推进 browser/UI workflow,
|
||
新增只读 workflow-overview embedding contract,让外部 shell 可以先验证
|
||
`workflow-overview.html` iframe 的 API shape,再用 launch API 挂载 workflow overview。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewContract()`;
|
||
- `createIniPanelShellWorkflowOverviewReadiness()`;
|
||
- `mountIniPanelShellWorkflowOverviewEmbedding()`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增:
|
||
- `getWorkflowOverviewContract`;
|
||
- `getWorkflowOverviewReadiness`;
|
||
- `mountWorkflowOverviewEmbedding`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口:
|
||
- `getWorkflowOverviewContract()`;
|
||
- `getWorkflowOverviewReadiness()`;
|
||
- `mountWorkflowOverviewEmbedding()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增自描述入口:
|
||
- `getWorkflowOverviewContract()`;
|
||
- `getWorkflowOverviewReadinessFromApi()`;
|
||
- `mountWorkflowOverviewEmbedding()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖:
|
||
- overview contract shape;
|
||
- missing API readiness;
|
||
- ready API readiness;
|
||
- embedding result;
|
||
- thrown mount error 转成 data error;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 overview contract/readiness helper;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 加载真实 workflow-overview iframe 后,
|
||
能读取 readiness 并执行 embedding workflow;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 可通过 launch API
|
||
消费真实 workflow-overview iframe;
|
||
- `docs/panel-entry.md` 与 `verify_ini_panel_entry_docs.mjs` 同步记录新 helper/API;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow 与可执行 gate。下一批建议新增一个只读
|
||
`createIniPanelShellWorkflowOverviewEmbeddingReport()` 或等价 helper,把 overview iframe
|
||
readiness、missing methods、mount phase、render row count 和 error 合并成 display-ready report,
|
||
便于外部 shell 在不能嵌入 overview 时直接显示原因;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十一、2026-06-15 继续执行记录:INI panel workflow overview embedding report
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow 与可执行
|
||
gate,新增只读 workflow-overview embedding report,把 iframe API readiness、缺失方法、
|
||
mount phase、render row count 和 error 合并成外部 shell 可直接显示的诊断。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellWorkflowOverviewEmbeddingReport()`;
|
||
- embedding report 输出:
|
||
- `apiName: "ini-panel-shell-workflow-overview-embedding-report"`;
|
||
- `reportVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `overviewReady`;
|
||
- `embeddingReady`;
|
||
- `mountReady`;
|
||
- `statusLine`;
|
||
- `pageHref`;
|
||
- `contract`;
|
||
- `missingMethods`;
|
||
- `mountPhase`;
|
||
- `renderRowCount`;
|
||
- `error`;
|
||
- `blockingReasons`;
|
||
- `rows`;
|
||
- report rows 固定覆盖:
|
||
- `overview-api`;
|
||
- `missing-methods`;
|
||
- `embedding-ready`;
|
||
- `mount-phase`;
|
||
- `render-row-count`;
|
||
- `error`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getWorkflowOverviewEmbeddingReport`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getWorkflowOverviewEmbeddingReport()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增
|
||
`getWorkflowOverviewEmbeddingReport()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖:
|
||
- blocked embedding report 完整 shape;
|
||
- missing methods report;
|
||
- thrown mount error report;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、默认 blocked report、
|
||
launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 校验 workflow overview iframe 自身 report API;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 读取真实 workflow overview iframe 的
|
||
embedding report;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 读取同一 report;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增一个只读
|
||
`createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel()` 或等价 helper,把 embedding
|
||
report 压成稳定 `title/statusText/detailText/rows`,供 launch 页面、workflow overview 页面或外部
|
||
shell 直接渲染该 report;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十二、2026-06-15 继续执行记录:INI panel workflow overview embedding display view-model
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow,新增只读
|
||
workflow-overview embedding display view-model,把 embedding report 压成稳定
|
||
`title/statusText/detailText/rows`,便于 launch 页面、workflow overview 页面和外部 shell
|
||
直接渲染 report。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel()`;
|
||
- display view-model 输出:
|
||
- `phase: "ready" | "blocked"`;
|
||
- `title: "Workflow overview embedding"`;
|
||
- `statusText: "Ready" | "Blocked"`;
|
||
- `detailText`;
|
||
- `rows`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getWorkflowOverviewEmbeddingDisplayViewModel`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getWorkflowOverviewEmbeddingDisplayViewModel()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增
|
||
`getWorkflowOverviewEmbeddingDisplayViewModel()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 display view-model 的 blocked shape 与 view-model helper
|
||
聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、默认 display view-model、
|
||
launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 校验 workflow overview iframe 自身 display view-model API;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 读取真实 workflow overview iframe 的
|
||
embedding display view-model;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 读取同一 display
|
||
view-model;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增只读
|
||
`createIniPanelShellWorkflowOverviewEmbeddingRenderState()` 或等价 helper,把 embedding display
|
||
view-model 压成稳定 `statusLine/dataset/rows`,供 launch 页面或外部 shell 用同一 DOM renderer
|
||
显示 overview embedding report;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十三、2026-06-15 继续执行记录:INI panel workflow overview embedding render-state
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow,新增只读
|
||
workflow-overview embedding render-state,把 embedding display view-model 压成稳定
|
||
`statusLine/dataset/rows`,供 launch 页面、workflow overview 页面或外部 shell 复用同一种
|
||
DOM renderer 数据结构显示 overview embedding report。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellWorkflowOverviewEmbeddingRenderState()`;
|
||
- render-state 输出:
|
||
- `apiName: "ini-panel-shell-workflow-overview-embedding-render-state"`;
|
||
- `renderStateVersion: 1`;
|
||
- `phase`;
|
||
- `ready`;
|
||
- `title`;
|
||
- `statusText`;
|
||
- `detailText`;
|
||
- `statusLine`;
|
||
- `rows`;
|
||
- `dataset.handoffPhase`;
|
||
- `dataset.handoffReady`;
|
||
- `dataset.handoffScope: "workflow-overview-embedding"`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getWorkflowOverviewEmbeddingRenderState`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getWorkflowOverviewEmbeddingRenderState()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增
|
||
`getWorkflowOverviewEmbeddingRenderState()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 render-state blocked shape 与 view-model helper 聚合关系;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、默认 render-state、
|
||
launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 校验 workflow overview iframe 自身 render-state API;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 读取真实 workflow overview iframe 的
|
||
embedding render-state;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 读取同一 render-state;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增只读
|
||
`createIniPanelShellWorkflowOverviewEmbeddingDomContract()` 或等价 helper,定义 embedding
|
||
report 渲染所需 mount/status/rows selectors、dataset keys 和 render-result fields,并为后续
|
||
真实 DOM renderer 做准备;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十四、2026-06-15 继续执行记录:INI panel workflow overview embedding DOM contract
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow,新增只读
|
||
workflow-overview embedding DOM contract,定义 embedding report 渲染所需的 mount/status/rows
|
||
selectors、dataset keys 和 render-result fields,为后续真实 DOM renderer 做准备。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellWorkflowOverviewEmbeddingDomContract()`;
|
||
- DOM contract 输出:
|
||
- `apiName: "ini-panel-shell-workflow-overview-embedding-dom-contract"`;
|
||
- `contractVersion: 1`;
|
||
- `requiredNodeIds: ["mount", "status", "rows"]`;
|
||
- 默认 selectors:
|
||
- `[data-workflow-overview-embedding]`;
|
||
- `[data-workflow-overview-embedding-status]`;
|
||
- `[data-workflow-overview-embedding-rows]`;
|
||
- `mountDatasetKeys`;
|
||
- `rowDatasetPrefix`;
|
||
- `rowDatasetKeys`;
|
||
- `renderResultFields`;
|
||
- 支持外部 shell 传入自定义 `rowDatasetPrefix` 与 selectors;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getWorkflowOverviewEmbeddingDomContract`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getWorkflowOverviewEmbeddingDomContract()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增
|
||
`getWorkflowOverviewEmbeddingDomContract()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖默认 contract 完整 shape 与自定义 prefix/selectors;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、默认 contract、
|
||
launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 校验 workflow overview iframe 自身 DOM contract API;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 读取真实 workflow overview iframe 的
|
||
embedding DOM contract;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 可读取自定义
|
||
rowDatasetPrefix 的 DOM contract;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增只读
|
||
`createIniPanelShellWorkflowOverviewEmbeddingDomReadiness()` 或等价 helper,检查 embedding
|
||
report DOM contract 需要的 document/mount/status/rows 节点是否存在,输出 missing/checks,
|
||
为真实 DOM renderer 做最后前置 gate;仍保持只读,不新增控制按钮,不解析 G-code。
|
||
|
||
十五、2026-06-15 继续执行记录:INI panel workflow overview embedding DOM readiness
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow,新增只读
|
||
workflow-overview embedding DOM readiness,检查 embedding report DOM contract 所需的
|
||
document/mount/status/rows 节点是否存在,输出 missing/checks,为真实 DOM renderer 做最后
|
||
前置 gate。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `createIniPanelShellWorkflowOverviewEmbeddingDomReadiness()`;
|
||
- DOM readiness 输出:
|
||
- `apiName: "ini-panel-shell-workflow-overview-embedding-dom-readiness"`;
|
||
- `readinessVersion: 1`;
|
||
- `phase: "ready" | "blocked"`;
|
||
- `ready`;
|
||
- `missing`;
|
||
- `checks.document`;
|
||
- `checks.mount`;
|
||
- `checks.status`;
|
||
- `checks.rows`;
|
||
- `checks.rowDatasetPrefix`;
|
||
- `contract`;
|
||
- 支持传入自定义 contract、documentRef、mountNode、statusNode、rowsNode;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`getWorkflowOverviewEmbeddingDomReadiness`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`getWorkflowOverviewEmbeddingDomReadiness()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增
|
||
`getWorkflowOverviewEmbeddingDomReadiness()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 missing document/nodes 与 ready nodes 两种 shape;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、默认 readiness、
|
||
launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 校验 workflow overview iframe 自身 DOM readiness API;
|
||
- `ini_panel_launch_smoke.html` 校验真实 launch iframe 读取真实 workflow overview iframe 的
|
||
embedding DOM readiness;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell workflow 使用自定义 DOM
|
||
contract 与已有外部节点得到 ready readiness;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
|
||
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增只读
|
||
`renderIniPanelShellWorkflowOverviewEmbeddingState()` 或等价 helper,使用 embedding render-state
|
||
与 DOM readiness/contract 渲染 status 与 rows,并返回结构化 render result;仍保持只读,
|
||
不新增控制按钮,不解析 G-code。
|
||
|
||
十六、2026-06-15 继续执行记录:INI panel workflow overview embedding DOM renderer
|
||
|
||
本轮按 `text13.txt` 执行,不扩展 `text12.txt`。继续推进 browser/UI workflow,新增只读
|
||
workflow-overview embedding DOM renderer,使用 embedding render-state 与 DOM readiness/contract
|
||
渲染 status 与 rows,并返回结构化 render result,便于外部 shell 直接复用同一展示路径。
|
||
|
||
完成内容:
|
||
|
||
- `ui-shell.js` 新增 `renderIniPanelShellWorkflowOverviewEmbeddingState()`;
|
||
- renderer 行为:
|
||
- 使用 `createIniPanelShellWorkflowOverviewEmbeddingDomReadiness()` 检查 document、mount、
|
||
status、rows 与 row dataset prefix;
|
||
- 将 `renderState.dataset.handoffPhase`、`handoffReady`、`handoffScope` 写入 mount node;
|
||
- 将 `renderState.statusLine` 写入 status node;
|
||
- 将 `renderState.rows` 渲染为 `dt/dd` rows;
|
||
- 返回 `rendered`、`statusLine`、`rowCount`、`rowIds`、`dataset`;
|
||
- `createIniPanelLaunchApiManifest().methods` 新增
|
||
`renderWorkflowOverviewEmbeddingState`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`renderWorkflowOverviewEmbeddingState`;
|
||
- `launch.html` 的 `window.linuxCncIniPanelLaunchApi` 新增真实 browser 入口
|
||
`renderWorkflowOverviewEmbeddingState()`;
|
||
- `workflow-overview.html` 的 `window.linuxCncIniPanelWorkflowOverviewApi` 新增真实 browser
|
||
入口 `renderWorkflowOverviewEmbeddingState()`;
|
||
- `verify_ini_panel_ui_shell.mjs` 覆盖 fake DOM 渲染结果、dataset、row ids 与 row dataset keys;
|
||
- `verify_ini_panel_launch_api_manifest.mjs` 覆盖 launch manifest 与 launch 页面真实 API;
|
||
- `verify_ini_panel_shell_integration_manifest.mjs` 覆盖 helper export、launch method count 与文档记录;
|
||
- `verify_ini_panel_entry_docs.mjs` 与 `docs/panel-entry.md` 同步记录新 helper/API;
|
||
- `ini_panel_workflow_overview_smoke.html` 在 workflow overview iframe 内动态创建 embedding
|
||
mount/status/rows 节点并校验 renderer;
|
||
- `ini_panel_shell_integration_workflow_smoke.html` 校验外部 shell 使用自定义 embedding DOM
|
||
contract 调用 renderer;
|
||
- `ini_panel_launch_smoke.html` 校验 launch API 与 workflow overview iframe API 暴露新 renderer;
|
||
- 未新增控制按钮;
|
||
- 未执行 action-plan;
|
||
- 未解析 G-code;
|
||
- 未解释 canonical events;
|
||
- 未新增 JS CNC 语义;
|
||
- 未改变 OPFS/session persistence、LinuxCNC interpreter、tool、parameter、planner 或
|
||
LinuxCNC-owned runtime semantics。
|
||
|
||
验证已通过:
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_opfs_smoke=ok
|
||
browser_ini_control_page_smoke=ok
|
||
browser_ini_launch_smoke=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
vendor sync up to date
|
||
standalone CNC semantics guard complete
|
||
interp_wasm_node_smoke=ok
|
||
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
|
||
host_wasm_opfs_browser_smokes=ok
|
||
```
|
||
|
||
下一步建议:
|
||
|
||
继续推进 browser/UI workflow。下一批建议新增只读
|
||
`mountIniPanelShellWorkflowOverviewEmbeddingState()` 或等价 helper,把 embedding render-state、DOM
|
||
readiness、renderer result 与错误捕获合并成不抛异常的结构化 mount workflow result;仍保持只读,
|
||
不新增控制按钮,不解析 G-code。
|