5.5 KiB
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 的 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 集成,详见 系统流程与后续执行基线。
历史任务边界: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。