Files
cnc_wams/text15.txt

419 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
项目整体完成情况与后续执行计划
生成时间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。