From 2f6e8480bfae1117a0111a0ccff10c2e91d860b1 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Tue, 16 Jun 2026 15:11:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=90=8E=E7=BB=AD=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=88=B0=20text15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT_COMPLETION_TRACKER.md | 16 +- text15.txt | 301 ++++++++++++++++++++++++++++++++++ 2 files changed, 309 insertions(+), 8 deletions(-) create mode 100644 text15.txt diff --git a/PROJECT_COMPLETION_TRACKER.md b/PROJECT_COMPLETION_TRACKER.md index b957807..c3499ef 100644 --- a/PROJECT_COMPLETION_TRACKER.md +++ b/PROJECT_COMPLETION_TRACKER.md @@ -3,12 +3,12 @@ Last updated: 2026-06-16 CST This file tracks the overall completion state of the LinuxCNC WASM/browser port. -Use it for project-level status and acceptance tracking. Use `text14.txt` for +Use it for project-level status and acceptance tracking. Use `text15.txt` for turn-by-turn continuation notes and next-batch execution records. ## Current Status -- Active continuation file: `text14.txt` +- Active continuation file: `text15.txt` - Latest completed batch: project release artifact URL workflow action-plan SDK API - Latest relevant commit: use `git log -1 --oneline` after each committed batch - Working tree at tracker creation: clean @@ -30,7 +30,7 @@ The project is complete for the current scope when all of the following are true - Host/runtime blocked families are explicitly documented and not falsely promoted. - All required gates pass. - Documentation explains what is supported, blocked, and how to verify it. -- `text14.txt` contains the final completion record and the working tree is clean. +- `text15.txt` contains the current continuation record and the working tree is clean. ## Area Status @@ -76,9 +76,9 @@ Execute these in order unless a later user request explicitly changes priority. Current next task: -- No required work remains for the current scope. Future work should start from - a new scope request or from a real LinuxCNC host runtime becoming available - for the blocked runtime families. +- Current scope is complete for the established release baseline. Continue future + work from `text15.txt`, and keep each batch tied to a callable API, verifiable + workflow, executable gate, or real UI/browser capability. Then complete the closure: @@ -194,7 +194,7 @@ Work items: Completion criteria: - A new developer can run validation from README/docs without reading old - `text1` through `text13`. + `text1` through `text14`. - `project_release_handoff_docs_node_smoke=ok` is included in the host aggregate gate. @@ -236,7 +236,7 @@ wasm-port/tests/native/verify_sim_configs.sh ## Final Acceptance Checklist - [x] Working tree is clean. -- [x] Latest `text14.txt` record says the project is complete for current scope. +- [x] Latest continuation state has moved to `text15.txt`. - [x] `git diff --check` passes. - [x] Vendor sync guard passes. - [x] Standalone CNC semantics guard passes. diff --git a/text15.txt b/text15.txt new file mode 100644 index 0000000..116b300 --- /dev/null +++ b/text15.txt @@ -0,0 +1,301 @@ +项目整体完成情况与后续执行计划 + +生成时间: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。