推进 INI 面板 launcher shell alignment

This commit is contained in:
2026-06-14 23:25:17 +08:00
parent fc4fb54a20
commit 76e688d126
4 changed files with 62 additions and 2 deletions

View File

@@ -1453,3 +1453,59 @@ host_wasm_opfs_browser_smokes=ok
`ui-shell.md` 或 `panel-entry.md`,只列出 `ui-shell.js`、`launch.html`、`control-page.html`
三者关系和最小用法,或者把 launcher 页面改成从 `ui-shell.js` 读取 manifest仍不新增控制
按钮,不解析 G-code。
十八、2026-06-14 继续执行记录launcher and smoke shell alignment
本轮把 launcher 页面和 launch smoke 统一切到 `ui-shell.js`,使入口页面、测试断言与统一
shell 入口保持一致,减少入口契约的重复来源。
完成内容:
- `wasm-port/runtime/ui/ini-panel/launch.html` 改为从 `ui-shell.js` 读取 manifest
- `wasm-port/tests/browser/ini_panel_launch_smoke.html` 改为从 `ui-shell.js` 读取 manifest
- `wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs` 增加 manifest 复制语义检查;
- 保持 `ui-shell.js` 作为 entry manifest、controller、renderer 的单一导出入口;
- 未新增控制按钮;
- 未解析 G-code
- 未解释 canonical events
- 未改变 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_ui_node_smokes.sh
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
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_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
```
下一步建议:
继续压缩重复文档与入口说明。下一批建议新增一个极短的 `panel-entry.md`,只写
`ui-shell.js`、`launch.html`、`control-page.html` 三者关系和最小调用方式,或者直接把
launcher 页面改成从 `ui-shell.js` 导出更稳定的可见入口列表;仍保持只读,不新增控制按钮,
不解析 G-code。

View File

@@ -73,7 +73,7 @@
</section>
</main>
<script type="module">
import { getIniPanelEntryManifest } from "./entry-manifest.js";
import { getIniPanelEntryManifest } from "./ui-shell.js";
const manifest = getIniPanelEntryManifest();
for (const entry of manifest) {

View File

@@ -10,7 +10,7 @@
import {
getIniPanelEntryByHref,
getIniPanelEntryManifest,
} from "../../runtime/ui/ini-panel/entry-manifest.js";
} from "../../runtime/ui/ini-panel/ui-shell.js";
function assertEqual(actual, expected, label) {
if (actual !== expected) {

View File

@@ -13,6 +13,10 @@ assert.equal(getIniPanelEntryByHref("./index.html")?.id, "edit-run");
assert.equal(typeof createMachineSessionControlPageController, "function");
assert.equal(typeof renderMachineSessionControlView, "function");
const shellManifest = getIniPanelEntryManifest();
shellManifest[0].title = "changed";
assert.equal(INI_PANEL_ENTRIES[0].title, "Open edit and run panel");
const panelFrame = {
contentWindow: {
linuxCncIniPanelApi: {