切换后续记录到 text15

This commit is contained in:
2026-06-16 15:11:36 +08:00
parent e11c29533f
commit 2f6e8480bf
2 changed files with 309 additions and 8 deletions

301
text15.txt Normal file
View File

@@ -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。