Files
linuxcncWebWASM/docs/linuxcnc-web-wasm-next-work.md

48 lines
5.5 KiB
Markdown
Raw Permalink 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.
# 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、配置/HAL preflight、虚拟设备、Python bridge、FE-M1..M4 和 native CTest。当前前端与适配器已有垂直切片,但 `sim_api` 仍是 bootstrap,Worker 尚未把 interpreter、TP、motion、kinematics、HAL、IO 串成统一 `sim_task` 固定 tick;真实 OPFS、完整配置启动和跨浏览器验证也未闭合。
发布状态仍为 `blocked_not_release_candidate`/`STOP_RELEASE`。六项发布 blocker(manifest ownership、accepted entries、official oracle、configuration resources、browser matrix、implementation license)必须保留;当前正式接续以 [`nextTask.md`](../nextTask.md) 的 `WAIT-OWNER-01` 为准,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 |
## 历史实现边界与当前技术缺口
本表中的 M3/FE/REG 行用于保留已完成实现的依赖和证据,不是当前接续指针。`nextTask.md` 是唯一当前任务入口;owner 输入和新 context 之后,第一个需要实现的技术任务是 `INT-01 sim_task 固定 tick 集成`,详见 [`系统流程与后续执行基线`](linuxcnc-web-wasm-system-flow-and-execution-baseline.md)。
## 历史任务边界: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。