# LinuxCNC Web/WASM 后续工作基线 更新时间:2026-08-21 ## 当前判断 运动学实现主线 K0-K6 已完成代码和 native/WASM 回归:trivkins、耦合运动学、5 轴/TRT、机器人、GenSer、Delta、Tripod、Hexapod、Pentapod、switchkins、userk/registry、TP→IK→motion、FK feedback、home/limit 均已有实现、ABI、固定边界和测试产物。对应报告仍为 `partial` 或 `blocked` 的原因是锁定 LinuxCNC 来源没有 `linuxcnc/unit_tests/kinematics/**` 官方 oracle;这限制发布验收,不应继续重复实现运动学解析。 已验证的其它基础包括:posemath、解释器、motion queue、HAL 核心、IO 核心、Worker protocol、replay、workspace recovery/migration、Python runtime manifest 和 native CTest。当前仓库没有前端应用壳,也没有把 INI/HAL 资源图接入真实 Worker 启动路径。 发布状态仍为 `blocked_not_release_candidate`/`STOP_RELEASE`。六项发布 blocker(manifest ownership、accepted entries、official oracle、configuration resources、browser matrix、implementation license)必须保留;owner review 是外部输入,不再作为当前开发任务反复重跑。 ## 执行顺序 | 顺序 | 任务 | 目标 | 主要产物 | 依赖 | |---|---|---|---|---| | 1 | `M3-CFG-01` | 已完成:把 INI/HAL/资源引用从静态索引推进到确定性启动解析;支持相对路径、`LIB:`、参数尾缀、目录和变量/宿主路径的显式错误 | `web/workspace/configuration.mjs`、`coverage/configuration-startup-closure.report.json`、生成器和单测 | 当前 config graph/resource index | | 2 | `M3-RT-02` | 已完成:将 HAL pin/signal/thread/function 和 `.comp` 元数据接成可执行配置图,保留类型、重复注册、周期和失败边界 | `coverage/hal-component-manifest.report.json`、HAL preflight、native/WASM/Worker test | `M3-CFG-01`、`sim_hal` | | 3 | `M3-RT-03` | 已完成:将 spindle、tool、probe、limit、estop 数字孪生接入 Worker command path,并让故障注入可录制/回放 | `coverage/virtual-device-fault-matrix.report.json`、event/state golden、Worker tests | `M3-RT-02`、`sim_io` | | 4 | `M3-FS-01` | 已完成:将 workspace recovery/migration 从独立模块接入真实 session 和配置加载,验证 OPFS 适配边界 | `coverage/workspace-session-integration.report.json`、Worker workspace integration report | `M3-CFG-01`、M3-RT-02/03、现有 recovery/migration | | 5 | `M3-PY-01` | 已完成:用固定 Pyodide artifact 建立实际 Worker bridge;虚拟 `linuxcnc`/`hal`/`INI` API 和宿主能力拒绝路径可执行 | `coverage/python-worker-bridge.report.json`、Worker tests | `M3-CFG-01`、FS-01 | | 6 | `FE-M1` | 已完成:建立最小真实前端垂直切片:AppShell、WorkerClient、工程加载、能力协商、step/snapshot/error | `coverage/frontend-m1.report.json`、`web/app`、browser smoke/e2e report | protocol v1、M3-CFG-01、Worker | | 7 | `FE-M2` | 已完成:核心操作 controls 和权威状态面板 | `coverage/frontend-m2.report.json`、browser operation smoke、state panel report | FE-M1、M3-RT-03 | | 8 | `FE-M3` | 项目和恢复工作流:导入/导出、journal/checkpoint、Worker 重启恢复、离线冲突状态 | `coverage/frontend-m3.report.json`、project/recovery browser smoke | FE-M2、M3-FS-01 | | 9 | `FE-M4` | 已完成:HAL/tool/IO/3D frontend workflows | `coverage/frontend-m4.report.json`、device/HAL/machine browser smoke | FE-M3、M3-RT-02/03 | | 10 | `REG-01` | 运行 233 个 sim entrypoint 的启动矩阵,分类 ready/blocked/error 并生成首个差异定位 | full configuration matrix report | M3-CFG-01..03、M3-PY-01、FE-M4 | | 10 | `REG-03/04` | 完成恢复、断网、浏览器和性能矩阵;再回到 K8 release gate | recovery/browser/performance reports | FE-M1、REG-01 | ## 当前任务边界:REG-01 允许创建全配置 startup matrix 生成器、结果分类和 source/resource/component 差异定位测试;不修改 kinematics 算法、ABI/protocol/schema/context lock,不替 owner 作许可证、浏览器或官方 oracle 决定。 完成条件: - M3-CFG/RT/FS/PY、FE-M1..M4 已完成;当前执行 233 个 sim entrypoint 全量启动矩阵。 - 矩阵必须保留每个 blocked/error source ID,不得删除样本或把资源/组件阻断重分类为 REAL-EXCLUDED。 - native CTest、Worker replay/recovery/migration 和全部脚本单测保持通过,六项发布 blocker 与 `STOP_RELEASE` 不被清除。 ## 不再重复的工作 - 不重新实现 K0-K6 运动学解析或重新生成同一组 blocked oracle 报告。 - 不因官方 oracle 缺失而伪造 golden、把派生 fixture 标为官方输入或升级 `accepted`。 - 不因 owner 输入缺失而循环刷新 K8-REL-16;收到真实 owner decision 或新 lock 输入时再单独创建 release context。