Start text6 execution plan

This commit is contained in:
2026-06-13 07:20:19 +08:00
parent 68991951f5
commit c85dec42c4

248
text6.txt Normal file
View File

@@ -0,0 +1,248 @@
项目整体完成情况与后续执行计划
生成时间2026-06-13 CST
本文件接替 `text5.txt`。后续工作按 `text6.txt` 执行;除非明确要求审计旧记录,
不要再回到 `text1/text2/text3/text4/text5` 扩展进度。`text5.txt` 作为历史归档
保留。
一、text5 重复记录问题处理结果
1. 问题原因。
`text5.txt` 后段出现过重复进度记录,主要发生在快速连续执行时:
- 工作已经在提交中完成,但继续轮次又根据旧上下文重复追加同名记录;
- 未先核对 `git status --short`、`git log -n`、`tail text5.txt` 和标题唯一性;
- 在记录 `m98m99`、`g10`、`g52`、early direct-file guard 时,曾出现同编号或同主题
重复段。
2. 已完成清理。
当前 `text5.txt` 已完成重复记录清理:
- 当前记录范围到 `八十三、2026-06-13 继续执行记录more direct-file staging path guard`
- 标题唯一性核查命令:
```bash
awk '/^[一二三四五六七八九十百]+、/ {print}' text5.txt | sort | uniq -d
```
当前输出为空,表示没有重复标题。
3. 后续防重规则。
从 `text6.txt` 开始,每轮执行必须先做下面四步:
```bash
git status --short
git log -5 --oneline
tail -n 120 text6.txt
awk '/^[一二三四五六七八九十百]+、/ {print}' text6.txt | sort | uniq -d
```
执行规则:
- 如果 `git status --short` 是 clean且最新提交已经包含当前建议工作不要重复追加记录。
- 每轮只追加一个新的中文编号记录;提交前再次检查标题唯一性。
- `text6.txt` 只记录新的后续进度,不复制 `text5.txt` 的长历史。
- 每批完成后,如果要写记录,先写 `text6.txt`,再提交该批代码和记录。
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard。
二、当前项目纪律
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. WASM port 基础架构已稳定。
`wasm-port` 已按独立移植工作区组织,包含 vendor、runtime/core、runtime/sdk、
runtime/opfs、runtime/ui、native/wasm/browser tests、docs 和 tools。
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
```
4. 近期已完成的 staged path guard。
已完成并提交的近期批次包括:
- `m98m99` 24 项 fixed `.ngc` manifest 的 staged path guard
- `g10` 5 项 fixed `.ngc` manifest 的 staged path guard
- `g52/g92` direct-file staged path guard
- early direct-file staged path guard
- `do-while-break`
- `exists`
- `return-value`
- `subs-follow-main`
- `fractional-linenumbers`
- `crazy-paths`
- INI-context/staging helper guard
- `oword-unwind`
- `sequence-number`
- `nested-sub-error`
- `abort-hot-comment`
- `m19`
- `iniparam`
- `iniparam-failassign`
5. 当前最新提交。
当前最近提交包括:
```text
6899195 Guard more direct-file staging paths
4e9ca73 Deduplicate early fixture progress note
675ee5f Guard early direct-file staging paths
17df47d Guard g52 staging path
bf17469 Guard final g10 staging paths
```
四、当前必须保持通过的验证入口
每批后续改动至少运行:
```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. 当前第一候选批次。
继续 early direct-file fixture staged path guard小批量选择
```text
oword-bug315/test.ngc
oword-bug315-p2/test.ngc
namedparam-bug424/test.ngc
```
执行目标:
- Node 侧增加 fixed `.ngc` manifest
- Node 侧与 `interpRegressionNgcFilesRecursive(...)` 精确对账;
- Node 侧检查 staged path 与 fixed manifest 一致;
- browser 侧增加 fixed-count 和 duplicate-free guard
- browser 侧检查 staged path 去掉 `/work/browser-interp/.../` 前缀后与 fixed manifest
一致;
- browser 仍不枚举目录。
2. 第一候选批次验证。
执行:
```bash
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
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_sim_configs_inventory_wasm.sh
wasm-port/tests/host/verify_host_smokes.sh
```
如果通过,提交建议:
```text
Guard oword/namedparam staging paths
```
3. 后续候选原则。
继续只选:
- 已有 Node/browser coverage
- 不依赖 HAL/task/tool DB/Python remap/user-M process
- direct-file 或 staging helper 已成型;
- 每批 2 到 3 个 case
- 只做 host/filesystem staging guard不新增 CNC 语义。
暂不推进:
- blocked runtime promotion
- browser full 159 sim-config inventory
- full-process/HAL/UI/Python/tool DB 执行;
- upstream intake 大批量扩面。
六、下一次开始执行时的第一条命令
从这里继续:
```bash
git status --short
git log -5 --oneline
tail -n 120 text6.txt
awk '/^[一二三四五六七八九十百]+、/ {print}' text6.txt | sort | uniq -d
```
如果输出显示工作区 clean 且 `text6.txt` 无重复标题,再执行第五部分第一候选批次。