结论:根据当前 AXIS 风格浏览器仿真、真实 G-code 执行、程序目录化和 release gate 状态创建 text16.txt,并将项目接续指针切换到 text16。
1951 lines
84 KiB
Plaintext
1951 lines
84 KiB
Plaintext
项目整体完成情况与后续执行计划
|
||
|
||
生成时间:2026-06-16 CST
|
||
|
||
本文件接替 `text14.txt`。后续工作按 `text15.txt` 执行;除非明确要求审计旧记录,
|
||
不要再回到 `text1/text2/text3/text4/text5/text6/text7/text8/text9/text10/text11/text12/text13/text14`
|
||
扩展进度。`text14.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. 当前续接点。
|
||
|
||
`text14.txt` 已推进到:
|
||
|
||
```text
|
||
五十六、2026-06-16 继续执行记录:project release artifact URL workflow action-plan SDK API
|
||
```
|
||
|
||
该批已提交:
|
||
|
||
```text
|
||
e11c295 新增 release artifact URL workflow action plan API
|
||
```
|
||
|
||
本文件从 `text15.txt` 重新开始记录后续进度。
|
||
|
||
2. 每轮开始前必须先执行:
|
||
|
||
```bash
|
||
git status --short
|
||
git log -5 --oneline
|
||
tail -n 120 text15.txt
|
||
awk '/^[一二三四五六七八九十百]+、/ {print}' text15.txt | sort | uniq -d
|
||
```
|
||
|
||
执行规则:
|
||
|
||
- 如果 `git status --short` 是 clean,且最新提交已经包含当前建议工作,不要重复追加记录;
|
||
- 每轮只追加一个新的中文编号记录;
|
||
- 提交前再次检查标题唯一性;
|
||
- `text15.txt` 只记录新的后续进度,不复制 `text14.txt` 的长历史;
|
||
- 每批完成后,如果要写记录,先写 `text15.txt`,再提交该批代码和记录;
|
||
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard;
|
||
- `text14.txt` 不再追加新进度,除非明确要求审计或修正历史记录。
|
||
|
||
三、当前完成情况摘要
|
||
|
||
1. 当前工作树状态。
|
||
|
||
切换到 `text15.txt` 前已确认:
|
||
|
||
```text
|
||
git status --short: clean
|
||
```
|
||
|
||
当前最近提交:
|
||
|
||
```text
|
||
e11c295 新增 release artifact URL workflow action plan API
|
||
b7ec759 新增 release artifact URL workflow SDK gate
|
||
bee0500 新增 release artifact URL workflow summary API
|
||
9015de1 新增 release artifact URL workflow SDK API
|
||
d789920 新增 release artifact JSON workflow API
|
||
640f1e4 新增 release artifact validation action plan API
|
||
```
|
||
|
||
2. 关键基线保持稳定。
|
||
|
||
- `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`
|
||
|
||
3. 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. SDK/API surface 能力。
|
||
|
||
当前 SDK 已覆盖:
|
||
|
||
- LinuxCNC-backed INI/interpreter SDK;
|
||
- OPFS/session persistence path、file、snapshot、machine-file、parameter、tool-table、session readiness/load helpers;
|
||
- sim-config staging 和 host runtime boundary classifier;
|
||
- project release gate manifest;
|
||
- project release gate result matrix;
|
||
- project release gate action-plan;
|
||
- project release readiness report;
|
||
- project release readiness summary view-model;
|
||
- project release readiness artifact parse/validation;
|
||
- artifact validation summary view-model;
|
||
- artifact validation action-plan;
|
||
- artifact JSON non-throwing workflow;
|
||
- artifact URL non-throwing workflow;
|
||
- artifact URL workflow summary view-model;
|
||
- artifact URL workflow action-plan;
|
||
- INI panel entry/launcher/control-page/shell/workflow overview helpers;
|
||
- shell session readiness workflow report;
|
||
- shell API surface inventory。
|
||
|
||
当前 SDK 聚合验证入口:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
```
|
||
|
||
2. Browser/UI workflow 验证。
|
||
|
||
当前 browser INI panel smoke 覆盖真实 OPFS/session persistence workflow、control page、
|
||
workflow overview surface 与外部 shell workflow:
|
||
|
||
```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_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
当前 release artifact URL browser workflow gate:
|
||
|
||
```bash
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
```
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
```
|
||
|
||
3. Project release gate wrapper。
|
||
|
||
当前顶层 release gate:
|
||
|
||
```bash
|
||
wasm-port/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
该 wrapper 已显式运行:
|
||
|
||
- `git diff --check`;
|
||
- vendor sync guard;
|
||
- standalone CNC semantics guard;
|
||
- interpreter WASM Node smoke;
|
||
- sim-config inventory;
|
||
- INI panel browser smoke;
|
||
- release artifact URL browser workflow smoke;
|
||
- UI Node smokes;
|
||
- SDK release artifact URL workflow gate;
|
||
- host aggregate smoke;
|
||
- release readiness artifact writer;
|
||
- release readiness artifact validator。
|
||
|
||
关键输出:
|
||
|
||
```text
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
host_wasm_opfs_browser_smokes=ok
|
||
project_release_readiness_artifact_node_smoke=ok
|
||
project_release_gate=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
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
建议每批也运行当前顶层 wrapper:
|
||
|
||
```bash
|
||
wasm-port/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
若只改 SDK release readiness URL workflow,可先 targeted:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
wasm-port/tests/docs/node/verify_project_release_handoff_docs.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
|
||
```
|
||
|
||
六、下一步建议
|
||
|
||
继续只做实质能力推进。优先选择可执行 gate、SDK/API surface、或真实 browser workflow;
|
||
不要做只整理断言或局部常量化的批次。
|
||
|
||
可选下一批方向:
|
||
|
||
- 把 project release readiness URL workflow 的 action-plan 或 summary 进一步暴露到 browser
|
||
workflow overview API;
|
||
- 增加 machine-readable release gate execution manifest/artifact,供外部 CI 展示每个 gate 的
|
||
command、expected output、observed output 和 pass/blocked 状态;
|
||
- 增加 OPFS/session persistence 的独立 SDK/browser gate,减少只依赖聚合 smoke 的排障成本;
|
||
- 若真实 LinuxCNC host runtime 可用,再按 native -> Node/WASM -> browser/host 顺序处理 blocked
|
||
runtime family promotion。
|
||
|
||
五十七、2026-06-16 继续执行记录:project release gate execution manifest SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,选择 `text15.txt` 下一步建议中的 machine-readable release gate execution manifest/artifact。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:`createProjectReleaseGateExecutionManifest()`;
|
||
- 该 API 复用 release gate manifest,按 gate 输出每个 gate 的 `command`、`expectedOutput`、
|
||
`observedOutput`、`evidence`、`passed/unknown` 状态、缺失 gate ID 与 pass/unknown 计数;
|
||
- `createProjectReleaseReadinessReport()` 现在嵌入 `gateExecutionManifest`,让外部 CI/browser
|
||
dashboard 可直接展示 release gate 执行证据,而不需要解析 shell 脚本;
|
||
- `createProjectReleaseReadinessArtifactValidation()` 现在要求 ready artifact 包含
|
||
`gateExecutionManifest`,并暴露 `gateExecutionManifestReady`;
|
||
- workflow overview release artifact validation summary/render rows 增加
|
||
`gate-execution-manifest` evidence 行;
|
||
- 更新 `tests/fixtures/project-release-readiness-ready.json`,使 browser artifact URL workflow 使用
|
||
新 schema;
|
||
- 更新 SDK README 与 `docs/project-release-handoff.md`,说明 execution manifest、artifact validation
|
||
evidence chain 与外部 CI/browser dashboard 用法。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
wasm-port/tests/docs/node/verify_project_release_handoff_docs.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.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/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_release_gate_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
project_release_readiness_artifact_node_smoke=ok
|
||
project_release_gate=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只属于 release gate evidence packaging、SDK/API surface、browser/UI artifact validation
|
||
render rows、docs 和测试 gate;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
五十八、2026-06-16 继续执行记录:OPFS/session persistence 独立 browser workflow gate
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,选择 `text15.txt` 下一步建议中的 OPFS/session persistence 独立 SDK/browser gate。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增真实浏览器 workflow 页面:`tests/browser/opfs_session_workflow_smoke.html`;
|
||
- 新增独立 browser gate:`tests/browser/verify_opfs_session_workflow_browser.sh`;
|
||
- 该 gate 在真实 Chromium + OPFS 中验证:
|
||
- 初始 `readMachineSessionReadiness()` blocked/missing 检查;
|
||
- `saveMachineTextFiles()` 保存 INI、parameter、tool-table;
|
||
- `saveGcodeProgram()` 保存 G-code;
|
||
- `saveMachineSessionSnapshot()` 保存 machine session snapshot;
|
||
- `loadMachineTextFiles()`、`loadGcodeProgram()`、`loadMachineSessionSnapshot()` 回读;
|
||
- `readMachineSessionReadiness()` ready 检查;
|
||
- `loadMachineSessionFromOpfs()` 把 OPFS machine session 加载到 WASM;
|
||
- `createMachineSessionPersistenceSummary()` 输出 ready persistence summary。
|
||
- 顶层 release gate manifest 新增 `opfs-session-browser` gate;
|
||
- `createProjectReleaseGateManifest()`、release readiness artifact fixture、artifact writer/validator
|
||
与 SDK/browser/UI tests 已同步到 11 个 release gates;
|
||
- `verify_project_release_gate.sh` 和 `verify_host_smokes.sh` 均纳入独立 OPFS/session browser gate;
|
||
- `docs/opfs-session-persistence.md` 与 `docs/project-release-handoff.md` 记录该独立 gate。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_opfs_session_workflow_browser.sh
|
||
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
wasm-port/tests/docs/node/verify_opfs_session_docs.sh
|
||
wasm-port/tests/docs/node/verify_project_release_handoff_docs.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.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_project_release_gate.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
browser_opfs_session_workflow_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
opfs_session_docs_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
ui_node_smokes=ok
|
||
project_release_readiness_artifact_node_smoke=ok
|
||
project_release_gate=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只验证 host OPFS/session persistence、WASM staging、SDK/browser workflow 和 release gate
|
||
evidence;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
五十九、2026-06-16 继续执行记录:release gate execution summary view-model SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,选择 release gate execution evidence 的 UI/CI 展示能力。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:`createProjectReleaseGateExecutionSummaryViewModel()`;
|
||
- 该 API 复用 `createProjectReleaseGateExecutionManifest()` 输出,生成稳定 dashboard/view-model:
|
||
- `statusLine`;
|
||
- `passedCount`、`unknownCount`、`gateCount`;
|
||
- `nextGateId`;
|
||
- `evidenceCounts`;
|
||
- summary rows;
|
||
- normalized per-gate `gateRows`。
|
||
- `createProjectReleaseReadinessReport()` 现在嵌入 `gateExecutionSummaryViewModel`;
|
||
- `createProjectReleaseReadinessArtifactValidation()` 现在要求 artifact 包含 ready
|
||
`gateExecutionSummaryViewModel`,并暴露 `gateExecutionSummaryReady`;
|
||
- release artifact validation summary/render rows 增加 `gate-execution-summary` evidence 行;
|
||
- SDK README 与 project release handoff docs 记录该 summary view-model;
|
||
- ready fixture 与 host artifact writer/validator 同步新 artifact schema。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
wasm-port/tests/docs/node/verify_project_release_handoff_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_release_artifact_url_workflow_browser.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_release_gate_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_opfs_session_workflow_smoke=ok
|
||
project_release_readiness_artifact_node_smoke=ok
|
||
project_release_gate=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release gate evidence 与 artifact validation display rows;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十、2026-06-16 继续执行记录:workflow overview release artifact URL action-plan browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,把 release artifact URL workflow 的 action-plan 从 SDK 层接到 workflow overview/launch 真实
|
||
browser API。外部 shell 现在可以通过 iframe 或 launch API 读取 URL workflow 的 ordered next-action /
|
||
next-command plan,而不需要自己解释 validation missing fields,也不会执行 release gate。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan()`;
|
||
- `loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl()` 的返回值新增 `actionPlan`;
|
||
- URL workflow summary rows 新增 `action-plan` 行;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||
`getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`createWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan`;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan()`;
|
||
- SDK re-export 新 INI panel workflow overview action-plan helper;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 browser workflow
|
||
action-plan API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 覆盖 ready URL workflow
|
||
action-plan shellScript,并比对 iframe API 与 launch API;
|
||
- 继续包含上一批 gate execution summary browser API 暴露与 smoke 覆盖。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
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
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.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
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact URL workflow action-plan、browser API surface、docs 和测试;
|
||
- browser API 只返回 action-plan 数据,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十一、2026-06-16 继续执行记录:workflow overview release artifact validation action-plan browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,把直接 artifact JSON validation 的 action-plan 接到 workflow overview/launch browser API。上一批
|
||
完成 URL workflow action-plan;本批补齐直接 JSON validation 路径,使外部 shell 在已经持有 artifact JSON
|
||
或 validation result 时,也能读取 ordered next-command plan,而不需要走 URL fetch workflow。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlan()`;
|
||
- `validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson()` 的返回值新增 `actionPlan`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||
`getWorkflowOverviewReleaseReadinessArtifactValidationActionPlan`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`createWorkflowOverviewReleaseReadinessArtifactValidationActionPlan`;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactValidationActionPlan()`;
|
||
- SDK re-export 新 INI panel workflow overview validation action-plan helper;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 direct validation
|
||
action-plan API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 覆盖 ready validation
|
||
action-plan shellScript,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
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
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact validation action-plan、browser API surface、docs 和测试;
|
||
- browser API 只返回 action-plan 数据,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十二、2026-06-16 继续执行记录:workflow overview release artifact JSON workflow browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,把已有 SDK `createProjectReleaseReadinessArtifactJsonWorkflow()` 接到 workflow overview/launch
|
||
真实 browser API。外部 shell 在已经持有 artifact JSON 时,现在可以一次调用获得 parse、validation、
|
||
summary、action-plan 与 gate execution summary,而不需要手动串多个 helper,也不需要走 URL fetch。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `runIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflow()`;
|
||
- 新 workflow 返回:
|
||
- `apiName: ini-panel-shell-workflow-overview-release-readiness-artifact-json-workflow`;
|
||
- `phase/ready/parsed/parseError/artifactApiName/missing`;
|
||
- SDK `jsonWorkflow`;
|
||
- UI validation wrapper;
|
||
- validation summary view-model;
|
||
- gate execution summary view-model;
|
||
- validation action-plan;
|
||
- stable rows;
|
||
- `statusLine`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||
`runWorkflowOverviewReleaseReadinessArtifactJsonWorkflow`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`runWorkflowOverviewReleaseReadinessArtifactJsonWorkflow`;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `runWorkflowOverviewReleaseReadinessArtifactJsonWorkflow()`;
|
||
- SDK re-export 新 INI panel workflow overview JSON workflow helper;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 JSON workflow API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 覆盖 ready JSON workflow、
|
||
gate execution summary 和 action-plan,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
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
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact JSON workflow、browser API surface、docs 和测试;
|
||
- browser API 只返回 workflow/action-plan 数据,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十三、2026-06-16 继续执行记录:workflow overview release artifact JSON workflow summary browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在上一批 JSON workflow browser API 之上,新增稳定 summary view-model。外部 shell 现在不需要
|
||
自己读取 workflow 的 `statusLine` 和内部 rows,可以直接调用 summary helper 获得 dashboard 友好的
|
||
status text 与 rows。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowSummaryViewModel()`;
|
||
- 新 summary view-model 返回:
|
||
- `apiName: ini-panel-shell-workflow-overview-release-readiness-artifact-json-workflow-summary-view-model`;
|
||
- `viewModelVersion: 1`;
|
||
- `phase/ready/title/statusText/detailText/statusLine`;
|
||
- rows:`parse`、`validation-summary`、`gate-execution-summary`、`action-plan`、`missing`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||
`getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowSummaryViewModel`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`createWorkflowOverviewReleaseReadinessArtifactJsonWorkflowSummaryViewModel`;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowSummaryViewModel()`;
|
||
- SDK re-export 新 INI panel workflow overview JSON workflow summary helper;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 JSON workflow
|
||
summary view-model API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 覆盖 ready JSON workflow summary,
|
||
并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
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
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact JSON workflow summary、browser API surface、docs 和测试;
|
||
- browser API 只返回 workflow summary 数据,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十四、2026-06-16 继续执行记录:workflow overview release artifact JSON workflow action-plan browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 JSON workflow 和 JSON workflow summary 之上,新增对称的 JSON workflow action-plan helper。
|
||
外部 shell 现在可以直接读取 JSON workflow 的 next-command plan,而不需要知道 workflow 内部字段。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowActionPlan()`;
|
||
- 新 helper 返回 workflow 自带 `actionPlan`,或从 workflow validation wrapper 生成 validation
|
||
action-plan;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||
`getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowActionPlan`;
|
||
- `createIniPanelShellViewModel()` 暴露
|
||
`createWorkflowOverviewReleaseReadinessArtifactJsonWorkflowActionPlan`;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowActionPlan()`;
|
||
- SDK re-export 新 INI panel workflow overview JSON workflow action-plan helper;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 JSON workflow
|
||
action-plan API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 覆盖 ready JSON workflow
|
||
action-plan,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
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
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact JSON workflow action-plan、browser API surface、docs 和测试;
|
||
- browser API 只返回 action-plan 数据,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十五、2026-06-16 继续执行记录:workflow overview release artifact JSON workflow DOM mount browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 JSON workflow render-state 之上新增真实 DOM contract/readiness/render/mount 能力。外部
|
||
shell 现在不只可以读取 JSON workflow 数据,也可以把该 workflow 状态块挂载到 caller-owned DOM。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowDomContract()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowDomReadiness()`;
|
||
- `renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowState()`;
|
||
- `mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactJsonWorkflowState()`;
|
||
- 新 DOM contract 默认 selectors:
|
||
- `[data-workflow-overview-release-readiness-artifact-json-workflow]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-json-workflow-status]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-json-workflow-rows]`;
|
||
- render/mount result 返回 `statusLine`、`rowCount`、`rowIds` 与 handoff dataset;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增四个 JSON workflow DOM 方法;
|
||
- `createIniPanelShellViewModel()` 暴露四个 JSON workflow DOM helper;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowDomContract()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactJsonWorkflowDomReadiness()`;
|
||
- `renderWorkflowOverviewReleaseReadinessArtifactJsonWorkflowState()`;
|
||
- `mountWorkflowOverviewReleaseReadinessArtifactJsonWorkflowState()`;
|
||
- SDK re-export 新 INI panel workflow overview JSON workflow DOM helpers;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 JSON workflow DOM
|
||
render/mount API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 创建真实 DOM 节点,覆盖
|
||
ready JSON workflow render/mount,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
node wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs
|
||
git diff --check
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact JSON workflow render-state DOM contract/readiness/render/mount、
|
||
browser API surface、docs 和测试;
|
||
- browser API 只渲染/mount 已有 workflow 状态,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十六、2026-06-16 继续执行记录:workflow overview release artifact URL workflow DOM mount browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在上一批 JSON workflow DOM mount 之上补齐 URL workflow 对称能力。外部 shell 现在可以把
|
||
artifact URL fetch/validate/render/mount workflow 的整体状态渲染到 caller-owned DOM,而不需要自己解释
|
||
URL workflow result 字段。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowRenderState()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomContract()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomReadiness()`;
|
||
- `renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState()`;
|
||
- `mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState()`;
|
||
- 新 render-state 返回:
|
||
- `apiName: ini-panel-shell-workflow-overview-release-readiness-artifact-url-workflow-render-state`;
|
||
- `renderStateVersion: 1`;
|
||
- `phase/ready/title/statusText/detailText/statusLine/rows/dataset`;
|
||
- dataset `handoffScope: workflow-overview-release-readiness-artifact-url-workflow`;
|
||
- 新 DOM contract 默认 selectors:
|
||
- `[data-workflow-overview-release-readiness-artifact-url-workflow]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-url-workflow-status]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-url-workflow-rows]`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增五个 URL workflow render/mount 方法;
|
||
- `createIniPanelShellViewModel()` 暴露五个 URL workflow render/mount helper;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowRenderState()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomContract()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomReadiness()`;
|
||
- `renderWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState()`;
|
||
- `mountWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState()`;
|
||
- SDK re-export 新 INI panel workflow overview URL workflow render/mount helpers;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 URL workflow
|
||
render/mount API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 创建真实 DOM 节点,覆盖
|
||
ready URL workflow render/mount,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
node wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs
|
||
git diff --check
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact URL workflow render-state DOM contract/readiness/render/mount、
|
||
browser API surface、docs 和测试;
|
||
- browser API 只渲染/mount 已有 URL workflow 状态,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十七、2026-06-16 继续执行记录:workflow overview release gate execution summary DOM mount browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在已有 gate execution summary view-model 之上新增 render-state 与 DOM mount 能力。外部 shell
|
||
现在可以直接把 release gate execution summary 和每个 gate row 渲染到 caller-owned DOM。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryRenderState()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomContract()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomReadiness()`;
|
||
- `renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryState()`;
|
||
- `mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryState()`;
|
||
- 新 render-state 返回:
|
||
- `apiName: ini-panel-shell-workflow-overview-release-readiness-artifact-gate-execution-summary-render-state`;
|
||
- `renderStateVersion: 1`;
|
||
- summary rows + normalized per-gate rows;
|
||
- dataset `handoffScope: workflow-overview-release-readiness-artifact-gate-execution-summary`;
|
||
- 新 DOM contract 默认 selectors:
|
||
- `[data-workflow-overview-release-readiness-artifact-gate-execution-summary]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-gate-execution-summary-status]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-gate-execution-summary-rows]`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增五个 gate execution summary
|
||
render/mount 方法;
|
||
- `createIniPanelShellViewModel()` 暴露五个 gate execution summary render/mount helper;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryRenderState()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomContract()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomReadiness()`;
|
||
- `renderWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryState()`;
|
||
- `mountWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryState()`;
|
||
- SDK re-export 新 INI panel workflow overview gate execution summary render/mount helpers;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 gate execution
|
||
summary render/mount API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 创建真实 DOM 节点,覆盖
|
||
gate execution summary render/mount,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
node wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs
|
||
git diff --check
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release gate execution summary render-state DOM contract/readiness/render/mount、
|
||
browser API surface、docs 和测试;
|
||
- browser API 只渲染/mount 已有 gate execution summary,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十八、2026-06-16 继续执行记录:workflow overview release artifact validation action-plan DOM mount browser API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在已有 artifact validation action-plan 之上新增 render-state 与 DOM mount 能力。外部 shell
|
||
现在可以直接把直接 JSON validation 的 next-command plan 渲染到 caller-owned DOM,而不需要自己解释
|
||
`actionPlan.rows`、`commands` 或 `shellScript`。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `ui-shell.js` 新增:
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlanRenderState()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlanDomContract()`;
|
||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlanDomReadiness()`;
|
||
- `renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlanState()`;
|
||
- `mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationActionPlanState()`;
|
||
- 新 render-state 返回:
|
||
- `apiName: ini-panel-shell-workflow-overview-release-readiness-artifact-validation-action-plan-render-state`;
|
||
- `renderStateVersion: 1`;
|
||
- action-plan rows + command rows;
|
||
- `nextActionId`、`nextCommand`、`shellScript`;
|
||
- dataset `handoffScope: workflow-overview-release-readiness-artifact-validation-action-plan`;
|
||
- 新 DOM contract 默认 selectors:
|
||
- `[data-workflow-overview-release-readiness-artifact-validation-action-plan]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-validation-action-plan-status]`;
|
||
- `[data-workflow-overview-release-readiness-artifact-validation-action-plan-rows]`;
|
||
- `createIniPanelLaunchApiManifest().methods` 和
|
||
`createIniPanelShellWorkflowOverviewContract().methodNames` 新增五个 validation action-plan
|
||
render/mount 方法;
|
||
- `createIniPanelShellViewModel()` 暴露五个 validation action-plan render/mount helper;
|
||
- `window.linuxCncIniPanelLaunchApi` 与
|
||
`window.linuxCncIniPanelWorkflowOverviewApi` 暴露真实 browser API:
|
||
- `getWorkflowOverviewReleaseReadinessArtifactValidationActionPlanRenderState()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactValidationActionPlanDomContract()`;
|
||
- `getWorkflowOverviewReleaseReadinessArtifactValidationActionPlanDomReadiness()`;
|
||
- `renderWorkflowOverviewReleaseReadinessArtifactValidationActionPlanState()`;
|
||
- `mountWorkflowOverviewReleaseReadinessArtifactValidationActionPlanState()`;
|
||
- SDK re-export 新 INI panel workflow overview validation action-plan render/mount helpers;
|
||
- SDK README、`docs/project-release-handoff.md`、`docs/panel-entry.md` 同步记录 validation
|
||
action-plan render/mount API;
|
||
- workflow overview browser smoke 与 shell integration browser smoke 创建真实 DOM 节点,覆盖
|
||
validation action-plan render/mount,并比对 iframe API 与 launch API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_launch_api_manifest.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
node wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
node wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs
|
||
git diff --check
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
ini_panel_ui_shell_node_smoke=ok
|
||
ini_panel_launch_api_manifest_node_smoke=ok
|
||
ini_panel_shell_integration_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
ini_panel_entry_docs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装 release artifact validation action-plan render-state DOM contract/readiness/render/mount、
|
||
browser API surface、docs 和测试;
|
||
- browser API 只渲染/mount 已有 validation action-plan,不执行 release gate command;
|
||
- blocked runtime families 仍不 promotion。
|
||
|
||
六十九、2026-06-16 继续执行记录:project batch acceptance workflow SDK gate
|
||
|
||
本批直接响应“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”,
|
||
把该规则转成机器可读 workflow 和可执行 gate,而不是只停留在文字约束。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:
|
||
- `createProjectBatchAcceptanceWorkflow()`;
|
||
- `createProjectBatchAcceptanceSummaryViewModel()`;
|
||
- `createProjectBatchAcceptanceActionPlan()`;
|
||
- batch acceptance workflow 接收 `batchId`、`capabilities`、`gateResults`、`observedOutputs`,
|
||
只接受 `api`、`workflow`、`gate`、`browser` 四类实质能力;
|
||
- workflow ready 条件为:
|
||
- 至少一个 accepted capability;
|
||
- release gate manifest 中 `project-batch-acceptance` gate 有通过证据;
|
||
- blocked workflow 会返回 `missing: ["batch-capability", "project-batch-acceptance"]`
|
||
或相应缺失项,并通过 action-plan 给出下一步 gate command;
|
||
- 新增可执行 SDK gate:
|
||
`wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh`,
|
||
输出 `project_batch_acceptance_workflow_node_smoke=ok`;
|
||
- `createProjectReleaseGateManifest()` 新增 `project-batch-acceptance` gate;
|
||
- `verify_project_release_gate.sh` 在 UI/browser gates 后运行 batch acceptance gate;
|
||
- `write_project_release_readiness_artifact.mjs` 和
|
||
`tests/fixtures/project-release-readiness-ready.json` 已同步到 12 个 release gates;
|
||
- SDK surface、SDK README、project release handoff docs、tracker、artifact validation 和
|
||
workflow overview/browser smoke 断言同步到新 gate。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh
|
||
node wasm-port/tests/sdk/node/verify_project_release_gate_manifest.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/host/verify_project_release_readiness_artifact.mjs wasm-port/tests/fixtures/project-release-readiness-ready.json
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||
wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_readiness_artifact_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_ini_workflow_overview_smoke=ok
|
||
browser_ini_shell_integration_workflow_smoke=ok
|
||
browser_release_artifact_url_workflow_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 evidence、SDK API、release gate manifest、docs 和测试;
|
||
- batch acceptance gate 不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十、2026-06-16 继续执行记录:project batch acceptance capability matrix SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在上一批 batch acceptance workflow 之上新增可独立调用的 capability matrix。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:`createProjectBatchAcceptanceCapabilityMatrix()`;
|
||
- capability matrix 负责规范化每批 `capabilities`,只接受:
|
||
- `api`;
|
||
- `workflow`;
|
||
- `gate`;
|
||
- `browser`;
|
||
- docs-only 或 unknown type 会进入 `rejectedCapabilities`,不会让批次通过;
|
||
- matrix 输出:
|
||
- `acceptedCapabilityTypes`;
|
||
- `capabilityTypes`;
|
||
- `countsByType`;
|
||
- `acceptedCount` / `rejectedCount`;
|
||
- `missing: ["batch-capability"]`;
|
||
- dashboard rows;
|
||
- `createProjectBatchAcceptanceWorkflow()` 现在复用 capability matrix,外部工具可以先独立判断
|
||
能力证据,再结合 `project-batch-acceptance` gate 判断 workflow ready;
|
||
- SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次能力证据分类、SDK API、docs 和测试;
|
||
- capability matrix 不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十一、2026-06-16 继续执行记录:project batch acceptance checklist SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance capability matrix/workflow 之上新增可直接展示的 checklist API。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:`createProjectBatchAcceptanceChecklist()`;
|
||
- checklist 接收 batch acceptance workflow 与 action plan,输出:
|
||
- `accepted-capability`;
|
||
- `batch-acceptance-gate`;
|
||
- `next-action`;
|
||
- 每个 checklist item 都包含 `status: pass|blocked`、`passed` 与 `detail`;
|
||
- ready workflow 返回 3 个 pass item;
|
||
- blocked workflow 返回缺少 capability、缺少 batch gate、存在 next action 的 blocked item;
|
||
- SDK surface、SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 checklist、SDK API、docs 和测试;
|
||
- checklist 不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十二、2026-06-16 继续执行记录:project batch acceptance report SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance matrix/workflow/summary/action-plan/checklist 之上新增单对象 report。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:`createProjectBatchAcceptanceReport()`;
|
||
- report 聚合:
|
||
- `capabilityMatrix`;
|
||
- `workflow`;
|
||
- `summaryViewModel`;
|
||
- `actionPlan`;
|
||
- `checklist`;
|
||
- ready report 输出 `summary`、`capabilities`、`checklist`、`next-command` dashboard rows;
|
||
- blocked report 保留 workflow missing reasons,并把下一步 gate command 放在 rows 中;
|
||
- SDK surface、SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 report、SDK API、docs 和测试;
|
||
- report 不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十三、2026-06-16 继续执行记录:project batch acceptance report validation JSON workflow SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance report 之上新增可验证 report 与 JSON workflow。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:
|
||
- `createProjectBatchAcceptanceReportValidation()`;
|
||
- `createProjectBatchAcceptanceReportJsonWorkflow()`;
|
||
- report validation 校验:
|
||
- `apiName` / `reportVersion`;
|
||
- ready phase;
|
||
- capability matrix;
|
||
- workflow;
|
||
- summary view-model;
|
||
- action plan;
|
||
- checklist;
|
||
- checklist row;
|
||
- JSON workflow 对外提供非抛错解析:
|
||
- valid ready report 返回 `parsed: true`、`ready: true`;
|
||
- blocked report 返回 missing evidence;
|
||
- invalid JSON 返回 `parsed: false` 和 `report-json` missing;
|
||
- SDK surface、SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 report validation/JSON workflow、SDK API、docs 和测试;
|
||
- JSON workflow 不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十四、2026-06-16 继续执行记录:project batch acceptance report URL workflow SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance report JSON workflow 之上新增可拉取 hosted report 的 URL workflow。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:
|
||
- `loadProjectBatchAcceptanceReportUrlWorkflow()`;
|
||
- `createProjectBatchAcceptanceReportUrlWorkflowSummaryViewModel()`;
|
||
- `createProjectBatchAcceptanceReportUrlWorkflowActionPlan()`;
|
||
- URL workflow 通过调用方提供的 `fetch` 拉取 batch acceptance report JSON;
|
||
- ready fetch 返回 `fetched: true`、`httpStatus`、JSON workflow、validation 与 missing evidence;
|
||
- 缺少 URL、缺少 fetch、HTTP failure、fetch throw 都返回结构化 blocked workflow,不向外抛错;
|
||
- action-plan 区分 input、fetch、command action,并在需要时给出
|
||
`wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh`;
|
||
- SDK surface、SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_gate_manifest_node_smoke=ok
|
||
project_release_artifact_url_workflow_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 report URL workflow、SDK API、docs 和测试;
|
||
- URL workflow 只处理项目级验收 JSON,不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十五、2026-06-16 继续执行记录:project batch acceptance artifact SDK gate
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance report/JSON/URL workflow 之上新增真实落盘 artifact gate。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增可执行 artifact writer:
|
||
- `tests/sdk/node/write_project_batch_acceptance_artifact.mjs`;
|
||
- 新增可执行 artifact validator:
|
||
- `tests/sdk/node/verify_project_batch_acceptance_artifact.mjs`;
|
||
- `tests/sdk/node/verify_project_batch_acceptance_artifact.sh`;
|
||
- `verify_project_batch_acceptance_workflow.sh` 现在会:
|
||
- 运行 batch acceptance workflow smoke;
|
||
- 写出 `build/project-batch-acceptance.json`;
|
||
- 通过 JSON workflow/report validation 验证该 artifact;
|
||
- artifact 验证覆盖 report api/version、ready phase、capability matrix、workflow、summary、
|
||
action-plan、checklist 和 dashboard rows;
|
||
- SDK README、project release handoff docs、tracker 和 docs smoke 同步记录 artifact gate。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_artifact.sh build/project-batch-acceptance.json
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
project_batch_acceptance_artifact=/home/cnc/桌面/cnc_wams/wasm-port/build/project-batch-acceptance.json
|
||
project_batch_acceptance_artifact_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 artifact 写入/验证、SDK gate、docs 和测试;
|
||
- artifact gate 只处理项目级验收 JSON,不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十六、2026-06-16 继续执行记录:project batch acceptance report validation summary/action-plan SDK API
|
||
|
||
本批继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”
|
||
推进,在 batch acceptance report validation 之上新增可直接给 CI/UI 使用的 summary 与 action-plan。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增 SDK API:
|
||
- `createProjectBatchAcceptanceReportValidationSummaryViewModel()`;
|
||
- `createProjectBatchAcceptanceReportValidationActionPlan()`;
|
||
- validation summary 输出 stable dashboard rows:
|
||
- report;
|
||
- batch;
|
||
- validation;
|
||
- missing;
|
||
- validation action-plan 对 ready validation 返回 no-op shell script;
|
||
- blocked validation 返回下一步可执行命令:
|
||
- `wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh`;
|
||
- expected output: `project_batch_acceptance_artifact_node_smoke=ok`;
|
||
- artifact validator 现在会校验 summary/action-plan 输出,确保真实 artifact gate 覆盖新 API;
|
||
- SDK surface、SDK README、project release handoff docs、tracker 和 docs smoke 同步记录新 API。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
node wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.mjs
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_workflow.sh
|
||
wasm-port/tests/sdk/node/verify_project_batch_acceptance_artifact.sh build/project-batch-acceptance.json
|
||
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
project_batch_acceptance_workflow_node_smoke=ok
|
||
project_batch_acceptance_artifact_node_smoke=ok
|
||
sdk_surface_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 未修改 vendored LinuxCNC 源码;
|
||
- 未在 JS/browser 中实现 G-code、tool、parameter、planner、kinematics、remap 或 canonical motion
|
||
语义;
|
||
- 新增内容只包装项目批次验收 validation summary/action-plan、SDK API、docs 和测试;
|
||
- validation action-plan 只指向项目级 artifact gate,不执行 CNC runtime,不改变 blocked runtime family promotion 状态。
|
||
|
||
七十七、2026-06-16 继续执行记录:real browser simulation priority docs gate
|
||
|
||
本批响应新的后续工作方向,把“真实 UI/browser 数控仿真页面优先”写入项目约束文档,
|
||
并新增可执行 docs gate,确保后续批次不能继续只偏向低收益 metadata/API 工作。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增约束文档:
|
||
- `docs/real-browser-simulation-priority.md`;
|
||
- 明确后续第一要务:
|
||
- 尽快实现真实 browser CNC simulation page;
|
||
- 页面应具备 machine/session loader;
|
||
- G-code program view;
|
||
- LinuxCNC-backed interpreter execution;
|
||
- machine readiness/status panels;
|
||
- toolpath/preview area;
|
||
- browser smoke coverage;
|
||
- 明确批次优先级:
|
||
1. real UI/browser simulation page capability;
|
||
2. browser workflow smoke;
|
||
3. UI APIs;
|
||
4. OPFS/session integration;
|
||
5. 只在直接 unblock 仿真页面时做 SDK/API helper;
|
||
6. 只在创建 executable gate 或保护仿真方向时做文档/release metadata;
|
||
- 新增可执行 docs gate:
|
||
- `tests/docs/node/verify_real_browser_simulation_priority_docs.mjs`;
|
||
- `tests/docs/node/verify_real_browser_simulation_priority_docs.sh`;
|
||
- 将新 gate 接入:
|
||
- `tests/host/verify_host_smokes.sh`;
|
||
- `tests/host/verify_project_release_gate.sh`;
|
||
- `tests/docs/node/verify_project_release_handoff_docs.mjs`;
|
||
- README、project release handoff、PROJECT_COMPLETION_TRACKER 同步记录该约束。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/docs/node/verify_real_browser_simulation_priority_docs.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
wasm-port/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
real_browser_simulation_priority_docs_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
host_wasm_opfs_browser_smokes=ok
|
||
project_release_gate=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 明确真实 browser simulation page 不能在 JS/browser 中实现 G-code、tool、parameter、
|
||
kinematics、remap、planner 或 canonical motion 语义;
|
||
- 页面只能负责 layout、interaction state、OPFS/session、file staging、SDK/WASM calls、
|
||
以及 LinuxCNC-produced output / validated runtime summary rendering;
|
||
- 下一批开始应优先实现真实仿真页面能力,而不是继续扩展 dashboard-only helper。
|
||
|
||
七十八、2026-06-16 继续执行记录:real browser simulation page MVP
|
||
|
||
本批按新的第一要务推进,直接新增真实 browser CNC simulation page MVP,而不是继续扩展
|
||
dashboard-only helper。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 新增真实仿真页面入口:
|
||
- `runtime/ui/simulation/index.html`;
|
||
- 新增页面 runtime:
|
||
- `runtime/ui/simulation/simulation-app.js`;
|
||
- 页面加载后会直接调用 LinuxCNC-backed interpreter WASM:
|
||
- `createLinuxCncInterpSdk()`;
|
||
- `interp.runProgram(DEFAULT_SIMULATION_PROGRAM)`;
|
||
- 页面渲染真实运行结果:
|
||
- G-code program view;
|
||
- LinuxCNC canonical output;
|
||
- active line / statement;
|
||
- final axis readout;
|
||
- motion event table;
|
||
- SVG toolpath preview;
|
||
- 新增 browser gate:
|
||
- `tests/browser/real_simulation_page_smoke.html`;
|
||
- `tests/browser/verify_real_simulation_browser.sh`;
|
||
- 新 gate 验证页面在 Chromium 中真实加载,WASM interpreter 执行成功,DOM 暴露 ready state,
|
||
toolpath polyline 非空,motion rows 与 LinuxCNC canonical motion count 一致;
|
||
- launch 页面新增 “Open real browser simulation” 链接;
|
||
- host smoke、project release gate、priority docs、README、handoff docs、tracker 同步接入新页面和 gate。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
wasm-port/tests/docs/node/verify_real_browser_simulation_priority_docs.sh
|
||
node wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
browser_real_simulation_page_smoke=ok
|
||
real_browser_simulation_priority_docs_node_smoke=ok
|
||
project_release_handoff_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 页面没有在 JS/browser 中实现 G-code、tool、parameter、kinematics、remap、planner 或
|
||
canonical motion 语义;
|
||
- JS 只调用 LinuxCNC-backed WASM SDK,并把 LinuxCNC-produced canonical output 渲染成
|
||
program state、axis readout、motion table 和 SVG preview;
|
||
- canonical output 中坐标字段的读取只用于 UI 渲染,不作为 CNC 解释或运动规划来源。
|
||
|
||
七十九、2026-06-16 继续执行记录:real browser simulation 多测试程序
|
||
|
||
本批继续围绕真实 browser CNC simulation page 推进,把页面从单一内置程序扩展为可选择
|
||
多组 LinuxCNC-backed 测试程序的仿真入口。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `runtime/ui/simulation/simulation-app.js` 新增 `SIMULATION_TEST_PROGRAMS`;
|
||
- 当前测试程序覆盖:
|
||
- square contour;
|
||
- pocket with Z moves;
|
||
- incremental loop;
|
||
- G2/G3 arc path;
|
||
- G81 drill pattern;
|
||
- `runtime/ui/simulation/index.html` 新增程序选择器和 Run 按钮;
|
||
- 页面 API 新增:
|
||
- `linuxCncRealSimulationApi.getPrograms()`;
|
||
- `linuxCncRealSimulationApi.runProgramById(programId)`;
|
||
- `linuxCncRealSimulationApi.getState()`;
|
||
- browser smoke 现在会逐个运行所有测试程序,验证每个程序都经由 LinuxCNC WASM 执行,
|
||
DOM program rows、motion rows、canonical output、toolpath polyline 和 motion types 与
|
||
LinuxCNC-produced output 保持一致;
|
||
- 增强 canonical motion 渲染解析:`ARC_FEED` 使用 LinuxCNC canonical arc endpoint 字段映射
|
||
到当前 active plane 的坐标轴,只作为 UI toolpath 渲染输入;
|
||
- 新增 UI Node smoke:
|
||
- `tests/ui/node/verify_real_simulation_programs.mjs`;
|
||
- `tests/ui/node/verify_real_simulation_programs.sh`;
|
||
- `tests/ui/node/verify_ui_node_smokes.sh` 接入该 smoke;
|
||
- README、real-browser priority docs、PROJECT_COMPLETION_TRACKER 同步记录多测试程序能力。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
real_simulation_programs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_real_simulation_page_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 新增测试程序均通过 `createLinuxCncInterpSdk()` / `interp.runProgram()` 执行;
|
||
- JS 没有解释 G-code,也没有实现 planner、kinematics、tool、parameter、remap 语义;
|
||
- JS 只保存测试程序文本、调用 LinuxCNC WASM、解析 LinuxCNC-produced canonical output 以渲染
|
||
UI 状态和刀路终点。
|
||
|
||
八十、2026-06-16 继续执行记录:G-code 和刀具执行过程可视化
|
||
|
||
用户反馈当前页面只能看到执行后的结果,看不到 G-code 执行过程和刀具执行过程。本批直接补齐
|
||
真实 browser simulation page 的回放能力。
|
||
|
||
本批新增实质能力:
|
||
|
||
- `runtime/ui/simulation/index.html` 新增 playback controls:
|
||
- Reset;
|
||
- Step Back;
|
||
- Play/Pause;
|
||
- Step Forward;
|
||
- Finish;
|
||
- Speed;
|
||
- `runtime/ui/simulation/simulation-app.js` 新增 playback frame API:
|
||
- `createPlaybackFrame(state, index)`;
|
||
- `renderSimulationPlaybackFrame(documentRef, state, index)`;
|
||
- `clampPlaybackIndex(motion, index)`;
|
||
- 页面现在按 LinuxCNC canonical motion event 逐帧渲染执行过程:
|
||
- 当前 G-code 行高亮;
|
||
- 当前 motion row 高亮;
|
||
- 已执行 motion row 标记;
|
||
- XYZ/ABC live readout 随 frame 更新;
|
||
- SVG 中全路径为浅色预览;
|
||
- 已执行路径逐步增长;
|
||
- toolhead 圆点随当前 motion frame 移动;
|
||
- 页面 API 新增:
|
||
- `linuxCncRealSimulationApi.getPlaybackFrame()`;
|
||
- `linuxCncRealSimulationApi.resetPlayback()`;
|
||
- `linuxCncRealSimulationApi.stepPlayback(delta)`;
|
||
- `linuxCncRealSimulationApi.play()`;
|
||
- `linuxCncRealSimulationApi.pause()`;
|
||
- `linuxCncRealSimulationApi.finishPlayback()`;
|
||
- browser smoke 新增回放验证:
|
||
- reset 后 playback index 为 0;
|
||
- step 后 executed toolpath 增长;
|
||
- toolhead 坐标变化;
|
||
- G-code line 和 motion row active 状态同步变化;
|
||
- finish 后 playback complete;
|
||
- Node smoke 新增 playback frame contract 验证。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
|
||
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
wasm-port/tests/docs/node/verify_real_browser_simulation_priority_docs.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
real_simulation_programs_node_smoke=ok
|
||
ui_node_smokes=ok
|
||
browser_real_simulation_page_smoke=ok
|
||
real_browser_simulation_priority_docs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 回放基于 LinuxCNC WASM 输出的 canonical motion events;
|
||
- JS 不解释 G-code,不规划刀路,不计算 CNC 语义;
|
||
- JS 只做播放索引、DOM 高亮、坐标显示、已执行路径和 toolhead 渲染。
|
||
|
||
八十一、2026-06-16 继续执行记录:AXIS 风格仿真实现文档
|
||
|
||
用户给出 LinuxCNC AXIS 界面截图,要求参考该界面编写程序,并先创建实现文档。本批只创建
|
||
实现文档和文档 gate,不改 simulation 页面行为。
|
||
|
||
本批新增:
|
||
|
||
- `wasm-port/docs/axis-style-simulation-implementation.md`;
|
||
- 文档定义 AXIS-style browser simulation 的目标布局:
|
||
- menu/toolbar/status badges;
|
||
- Manual Control / MDI tabs;
|
||
- Preview / DRO tabs;
|
||
- G-code source pane;
|
||
- bottom status bar;
|
||
- 参考 AXIS 的 spindle/coolant/override/jog/active G-code/DRO/toolpath 结构;
|
||
- 文档定义阶段:
|
||
- Phase 1 AXIS-style shell;
|
||
- Phase 2 program execution workflow;
|
||
- Phase 3 DRO and modal display;
|
||
- Phase 4 preview upgrade;
|
||
- Phase 5 machine/session integration;
|
||
- 文档明确下一批立即任务:在不移除当前功能的前提下,重构
|
||
`runtime/ui/simulation/index.html` 为 AXIS-inspired shell,并扩展 browser smoke;
|
||
- README、real-browser priority docs、PROJECT_COMPLETION_TRACKER 链接该实现计划;
|
||
- 新增文档 smoke:
|
||
- `wasm-port/tests/docs/node/verify_axis_style_simulation_docs.mjs`;
|
||
- `wasm-port/tests/docs/node/verify_axis_style_simulation_docs.sh`;
|
||
- host smoke 和 project release gate 接入该文档 smoke。
|
||
|
||
本批保持 LinuxCNC 语义边界:
|
||
|
||
- 文档明确 LinuxCNC 仍是唯一 CNC semantic source;
|
||
- Browser JS 只能负责 UI、OPFS/session、SDK/WASM 调用、LinuxCNC-produced output 渲染和播放;
|
||
- 禁止在 JS 中实现 G-code、modal、tool compensation、parameter、kinematics、remap、planner 或
|
||
canonical motion 语义。
|
||
|
||
八十二、2026-06-16 继续执行记录:AXIS-style browser simulation shell Phase 1
|
||
|
||
本批按 `wasm-port/docs/axis-style-simulation-implementation.md` 的 Immediate Next Batch
|
||
实现 Phase 1,不移除当前 LinuxCNC-backed execution 和 playback API。
|
||
|
||
本批新增实质 UI:
|
||
|
||
- `runtime/ui/simulation/index.html` 从三列 MVP 改为 AXIS-inspired shell;
|
||
- 新增/调整区域:
|
||
- titlebar:`axis.ngc - AXIS 2.9.8 on LinuxCNC-BROWSER-SIM`;
|
||
- menubar:File / Machine / View / Help;
|
||
- toolbar:open/reload/run/playback/status/program selector;
|
||
- Manual Control / MDI tabs;
|
||
- Preview / DRO tabs;
|
||
- AXIS-like dark preview viewport;
|
||
- lower G-code pane;
|
||
- machine-state pane;
|
||
- bottom status bar:ESTOP / No tool / Position: Relative Actual;
|
||
- 保留并复用当前 data attributes:
|
||
- `data-program-selector`;
|
||
- `data-run-program`;
|
||
- playback buttons;
|
||
- `data-program-lines`;
|
||
- toolpath SVG / executed polyline / toolhead;
|
||
- motion rows;
|
||
- canonical output;
|
||
- `simulation-app.js` 的 `setText()` 改为同步所有匹配节点,支持 AXIS shell 中多个 DRO/状态显示;
|
||
- 页面脚本新增 Manual/MDI 和 Preview/DRO tab 切换;
|
||
- browser smoke 扩展验证:
|
||
- AXIS shell regions;
|
||
- File/Machine/View/Help menubar;
|
||
- Manual/MDI tab switching;
|
||
- Preview/DRO tab switching;
|
||
- statusbar;
|
||
- toolbar Step Forward 与 playback API 同步;
|
||
- 原有 LinuxCNC WASM program execution、多测试程序、回放、toolhead、executed path 仍通过。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
|
||
wasm-port/tests/docs/node/verify_axis_style_simulation_docs.sh
|
||
wasm-port/tests/docs/node/verify_real_browser_simulation_priority_docs.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
browser_real_simulation_page_smoke=ok
|
||
real_simulation_programs_node_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 新 shell 只是 UI layout 和 display state;
|
||
- Program execution 仍通过 `createLinuxCncInterpSdk()` / LinuxCNC WASM;
|
||
- Preview、DRO、G-code active line 和 playback 都来自 LinuxCNC-produced canonical motion event;
|
||
- 禁用的 manual/spindle/coolant/jog 控件只显示 blocked/readiness 状态,不伪造机器动作。
|
||
|
||
八十三、2026-06-16 继续执行记录:仿真测试程序目录化
|
||
|
||
用户要求把程序移动到新目录,方便后续新增其它测试程序。本批把 simulation 内置 G-code 程序
|
||
从 `simulation-app.js` 拆出,建立独立程序库目录。
|
||
|
||
本批新增/调整:
|
||
|
||
- 新增目录:
|
||
- `runtime/ui/simulation/programs/`;
|
||
- 每个测试程序独立一个模块:
|
||
- `square-linear.js`;
|
||
- `pocket-z.js`;
|
||
- `incremental-loop.js`;
|
||
- `arc-g2-g3.js`;
|
||
- `drill-g81.js`;
|
||
- 新增 `runtime/ui/simulation/programs/index.js` 统一导出:
|
||
- `SIMULATION_TEST_PROGRAMS`;
|
||
- `DEFAULT_SIMULATION_PROGRAM_ID`;
|
||
- `DEFAULT_SIMULATION_PROGRAM`;
|
||
- `getSimulationTestPrograms()`;
|
||
- `getSimulationTestProgram(programId)`;
|
||
- `simulation-app.js` 改为从 `programs/index.js` 导入并 re-export,保持原有页面/API/test import
|
||
兼容;
|
||
- `verify_real_simulation_programs.mjs` 新增目录化校验:
|
||
- `programs/*.js` 文件数必须等于程序数量;
|
||
- simulation-app re-export 必须与 directory-backed inventory 一致;
|
||
- 默认程序和 ID 唯一性保持不变;
|
||
- README、AXIS-style implementation docs、PROJECT_COMPLETION_TRACKER 同步记录程序目录约定。
|
||
|
||
后续新增测试程序规则:
|
||
|
||
1. 在 `runtime/ui/simulation/programs/` 新增一个 `*.js` 模块;
|
||
2. 模块导出 `{ id, label, category, text, expectedMotionTypes }`;
|
||
3. 在 `programs/index.js` 导入并加入 `SIMULATION_TEST_PROGRAMS`;
|
||
4. 跑 `wasm-port/tests/ui/node/verify_real_simulation_programs.sh` 和
|
||
`SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh`。
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- 程序目录只保存 G-code fixture text 和 expected LinuxCNC canonical motion type 断言;
|
||
- 执行仍通过 LinuxCNC-backed WASM SDK;
|
||
- JS 没有新增 G-code 解释、planner 或 machine semantics。
|
||
|
||
八十四、2026-06-16 继续执行记录:真实 G-code 文本/文件执行
|
||
|
||
用户要求程序实现跑真实的 G-code 程序。本批在保留内置测试程序库的基础上,新增 operator-provided
|
||
G-code text 和 browser File 的执行入口。
|
||
|
||
本批新增实质能力:
|
||
|
||
- 页面工具栏新增 Open Program 文件入口:
|
||
- `data-open-program`;
|
||
- `data-open-program-file`;
|
||
- `window.linuxCncRealSimulationApi` 新增:
|
||
- `runProgramText(programText, metadata)`;
|
||
- `loadProgramFile(file)`;
|
||
- `runProgramText()` 会直接调用 `runRealBrowserSimulation({ programText })`,因此仍通过
|
||
LinuxCNC-backed WASM interpreter 执行;
|
||
- `loadProgramFile(file)` 读取浏览器 File 文本,再走同一个 LinuxCNC WASM 执行路径;
|
||
- simulation state 新增 program source metadata:
|
||
- `program.source`;
|
||
- `program.sourceLabel`;
|
||
- `program.filename`;
|
||
- `document.body.dataset.simulationProgramSource`;
|
||
- UI 显示程序来源:
|
||
- G-code pane header;
|
||
- bottom status bar;
|
||
- browser smoke 新增真实 G-code 验证:
|
||
- `runProgramText()` 执行非内置 G-code,验证 canonical output 中出现对应坐标;
|
||
- `loadProgramFile()` 使用 browser `File` 对象加载 `.ngc` 文本,验证修改后的 G-code 坐标
|
||
通过 LinuxCNC WASM 输出;
|
||
- Node smoke 新增 custom `programText` 直接执行验证。
|
||
|
||
本批新增/更新可执行验证:
|
||
|
||
```bash
|
||
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
```
|
||
|
||
关键通过输出:
|
||
|
||
```text
|
||
real_simulation_programs_node_smoke=ok
|
||
browser_real_simulation_page_smoke=ok
|
||
```
|
||
|
||
本批仍保持 LinuxCNC 语义边界:
|
||
|
||
- JS 只读取用户提供的 G-code 文本/文件;
|
||
- G-code 执行仍交给 LinuxCNC-backed WASM;
|
||
- JS 不解释 G-code、不规划刀路、不推导 CNC 语义。
|
||
|
||
八十五、2026-06-16 接续文件切换
|
||
|
||
已根据当前完成情况创建:
|
||
|
||
```text
|
||
text16.txt
|
||
```
|
||
|
||
后续执行记录、下一批建议和当前状态接续从 `text16.txt` 开始;`text15.txt` 到此作为上一阶段
|
||
记录归档。
|