整理进度到 text10 续接计划

This commit is contained in:
2026-06-14 14:18:00 +08:00
parent 0b7771b595
commit 724391bc9e

231
text10.txt Normal file
View File

@@ -0,0 +1,231 @@
项目整体完成情况与后续执行计划
生成时间2026-06-14 CST
本文件接替 `text9.txt`。后续工作按 `text10.txt` 执行;除非明确要求审计旧记录,
不要再回到 `text1/text2/text3/text4/text5/text6/text7/text8/text9` 扩展进度。
`text9.txt` 作为历史归档保留。
一、续接状态与防重规则
1. 当前续接点。
`text9.txt` 已推进到:
```text
五十一、2026-06-14 继续执行记录browser ini-named readback path groups guard
```
该批已提交并推送:
```text
0b7771b 继续推进浏览器 ini-named readback path 组 guard
```
本文件从 `text10.txt` 重新开始记录后续进度。
2. 每轮开始前必须先执行。
```bash
git status --short
git log -5 --oneline
tail -n 120 text10.txt
awk '/^[一二三四五六七八九十百]+、/ {print}' text10.txt | sort | uniq -d
```
执行规则:
- 如果 `git status --short` 是 clean且最新提交已经包含当前建议工作不要重复追加记录
- 每轮只追加一个新的中文编号记录;提交前再次检查标题唯一性;
- `text10.txt` 只记录新的后续进度,不复制 `text9.txt` 的长历史;
- 每批完成后,如果要写记录,先写 `text10.txt`,再提交该批代码和记录;
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard
- `text9.txt` 不再追加新进度,除非明确要求审计或修正历史记录。
二、当前项目纪律
1. LinuxCNC 仍是唯一 CNC 语义来源。
G-code、remap、tool、parameter、planner、kinematics、user-M、tool DB、Python
remap 等语义必须来自 LinuxCNC upstream 或 vendored LinuxCNC C/C++/配置/脚本源码。
2. 本项目允许实现的范围仍限于:
- build
- source sync
- runtime shim
- filesystem staging
- OPFS
- WASM/browser boundary
- 测试胶水;
- 文档;
- 机器可读 gate/artifact。
3. 禁止事项继续有效:
- 不在 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. 当前工作树状态。
切换到 `text10.txt` 前已确认:
```text
git status --short: clean
text9.txt duplicate Chinese headings: none
```
当前最近提交:
```text
0b7771b 继续推进浏览器 ini-named readback path 组 guard
c0bce74 继续推进浏览器 custom saved staging 断言组 guard
32aeba7 继续推进浏览器 saved staging 断言组 guard
7d9cf88 继续推进浏览器 random session path 断言组 guard
cba210b 继续推进浏览器 session path 断言组 guard
```
2. WASM port 基础架构稳定。
`wasm-port` 仍按独立移植工作区组织,包含 vendor、runtime/core、runtime/sdk、
runtime/opfs、runtime/ui、native/wasm/browser tests、docs 和 tools。
3. 关键基线保持稳定。
- `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`
4. 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
```
5. `text9.txt` 最新收敛方向。
`text9.txt` 后半段继续沿 browser/OPFS boundary guard 小批量推进,最近完成的重点包括:
- browser-random/direct-random saved tool-table expected line groups
- browser-random/direct-random tool-table load/save result line groups
- browser-interp/direct tool-table load/save result line groups
- browser-interp/direct parameter restore/save/readback/backup groups
- ini-named/explicit session parameter/tool-table result/backing text groups
- invalid INI session reject input/error groups
- browser-interp、browser-random、ini-named、explicit session path assertion groups
- browser-interp/browser-random saved file staging groups
- ini-named/explicit custom session saved file staging groups
- ini-named parameter/tool-table readback path groups。
这些改动均只收敛 browser/OPFS test glue 与 boundary guard未改变 OPFS bridge
behavior、file-service、path-model、SDK planner、interpreter、INI、tool、parameter
或 LinuxCNC-owned runtime semantics。
四、当前必须保持通过的验证入口
每批后续改动至少运行:
```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_interp_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
涉及 native baseline 或大范围 source/staging 改动时,再运行:
```bash
wasm-port/tests/native/verify_nc_files.sh
wasm-port/tests/native/verify_sim_configs.sh
wasm-port/tests/native/verify_native_probes.sh
```
五、下一步执行计划
1. 当前第一候选批次。
继续小批量 browser test glue guard。优先扫描 explicit session saved readback path groups
看是否能像 ini-named session 一样局部常量化:
- `loadedIniOverrideSession.parameters.opfsPath`
- `savedExplicitParameters.backupOpfsPath`
- `loadedIniOverrideSession.toolTable.opfsPath`。
执行目标:
- 只处理 `wasm-port/tests/browser/interp_smoke.html` 内的 browser/OPFS test glue
- 优先让 explicit session saved parameter/tool-table readback path groups 使用局部常量;
- 保持 expected readback text、OPFS path、WASM path、machine id、filename 与 save/load
行为不变;
- 不改变参数值、tool-table 值、INI 内容、OPFS path、WASM path 字符串;
- 不改变 OPFS bridge behavior、file-service、path-model、SDK planner、interpreter、
INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
2. 第一候选批次验证。
执行:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
wasm-port/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/host/verify_host_smokes.sh
```
如果通过,提交建议:
```text
继续推进浏览器 explicit readback path 组 guard
```
3. 后续候选。
如果 explicit readback path group 收益不明显,转向 machine text store path assertion
groups重点检查 `saveMachineTextFiles(...)` 相关输入是否已有可复用局部常量或 helper。
继续只选:
- browser/OPFS test glue
- path/readback/staging/result/expected line 的局部常量化;
- 已有 helper 的复用;
- 不改变行为的小批量 guard。
避免:
- 新增抽象过度包装;
- 把 save API 输入对象提成无用常量;
- 触碰 runtime、SDK、OPFS bridge 或 LinuxCNC-owned semantics。