Files
Web_FreeCAD_Bitbybit/docs/freecad-reference-execution-roadmap.zh-CN.md

81 lines
7.0 KiB
Markdown
Raw 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.
# FreeCAD 1.1.1 全功能对标执行路线图
## 1. 基线与证据线
唯一语义基线是 FreeCAD `1.1.1`、提交 `0108fd4b4850cc46e625b60e53cea7a7bbe69f8d`。界面相似、OCCT 算法可调用或命令名称存在都不等于兼容。
本机参考分三条证据线:
| 证据线 | 当前状态 | 用途 | 不得推断 |
|---|---|---|---|
| O1 headless oracle | `FreeCADCmd 1.1.1` 可用;`Part/Material/Measure` 可加载 | 几何、对象属性、错误和 FCStd 的确定性 CLI 回放 | Sketcher、PartDesign、TechDraw 等未构建模块的行为 |
| O2 完整桌面 oracle | 源码已锁定,完整 GUI/工作台产物尚未建立 | 命令状态、Task、选择、视图、工作台对象与 GUI 行为 | 不能用静态源码清册代替运行时行为 |
| O3 Web 对照 | Bitbybit 1.1.1、原生 OCCT 历史 provider 和 Facade 已有基础门禁 | FreeCAD↔Bitbybit↔Web 三方差分、浏览器 Worker/OPFS/交互 | Node smoke 不能代替真实浏览器证据 |
每项功能必须同时记录FreeCAD 输入与状态、Web 输入与状态、输出、错误、持久化、资源行为、差异原因和兼容等级。
## 2. 连续执行顺序
| 批次 | 任务范围 | 主要交付物 | 退出门禁 |
|---|---|---|---|
| R0 参考环境 | `ORA-01..02``INV-01..04``BASE-03..04` | 完整桌面 oracle 构建清单34 模块、命令、TypeId、Property、格式和错误清册 | 锁定提交可重建;清册无未登记入口 |
| R1 几何内核 | `BYB-03``BYB-05..08``BROWSER-OCCT-01``MEM-OCCT-01``TSN-03..10` | 可复现 Bitbybit/OCCT 构建浏览器原生历史Shape 生命周期;三方黄金差分 | Boolean/PartDesign 历史无静默错绑;长会话无泄漏 |
| R2 Sketcher | `SK-03..12` | planegcs WASM完整几何/约束/DOF/冲突;外部几何;编辑回放 | FreeCAD 草图成功/失败/冗余行为黄金通过 |
| R3 参数化核心 | `CORE-09..11``PART-ALL``PD-BASE``PD-LOFT``PD-DRESSUP``PD-TRANSFORM``PD-CLOSURE` | Document/Property/DAG/Body/Tip/SupportPart 与 PartDesign 全特征 | 编辑→重算→Undo→保存→加载闭环通过 |
| R4 文件互操作 | `FC-04..11` | Document/GuiDocument、BRep/Shape、Expression/Link/TopoRef、未知字段保留 | FreeCAD→Web→FreeCAD 双向差异可解释且无静默丢失 |
| R5 核心工作台 | `TD-ALL``SS-ALL``DRAFT-BASE``DRAFT-OPS``PLOT-ALL``DOC-CLOSURE` | TechDraw、Spreadsheet、Draft、Plot 的对象、命令、任务和格式 | 每命令至少成功/失败/round-trip fixture |
| R6 工程工作台 | `ASM-CORE``ASM-TOOLS``BIM-CORE``BIM-IFC``MESH-CORE``SURF-CORE``ENG-CLOSURE` | 装配、BIM、网格、曲面全链路 | 求解/几何/IFC/网格黄金和大模型预算通过 |
| R7 分析制造 | `FEM-ALL``CAM-ALL``ROBOT-ALL``INSP-ALL` | 求解器/后处理/刀路/仿真/检测报告 | 求解或明确远端能力G-code/结果文件黄金通过 |
| R8 平台长尾 | `DATA-ALL``ADDON-ALL``SCRIPT-ALL``PLATFORM-CLOSURE` | 数据模块、插件、宏/API、桌面通用能力的实现或显式代理 | 无未分类入口;安全和权限模型通过 |
| R9 发布 | `QA-01..08``REL-01..04` | 跨浏览器、性能、故障注入、安全、SBOM、迁移和发布 runbook | G0-G9 和所有阻断项关闭后才允许声明完整对标 |
## 3. 当前执行波次
当前只将下表的 Wave A 作为立即开工集。Wave B/C 可先准备 fixture 和合同,但不能在前置门未通过时声称验收。
| 波次 | 任务 | 可并行工作 | 退出条件 |
|---|---|---|---|
| Wave A解锁参考与浏览器内核 | `ORA-01``ORA-02``BYB-03``BYB-05``BROWSER-OCCT-01``BYB-06``BYB-05` 后并行 | 源码清册生成器、Worker 故障注入 harness、内存 telemetry 合同 | O2 可探针Chrome 能加载原生 Worker取消与崩溃可恢复 |
| Wave B建立可比较证据 | `INV-01..04``BASE-03``BASE-04``BROWSER-OCCT-01``BYB-07``MEM-OCCT-01/BYB-08` | 成功/失败 fixture 生产可按工作台分片 | 34 模块入口无漏项Fuse/Cut/Common 三方差异可解释1000 次压测达到内存预算 |
| Wave C关闭稳定拓扑 | `BYB-07``TSN-03/04``TSN-05/06``TSN-07/08/09``TSN-10` | `SK-03` planegcs 最小源图和 WASM POC | 100 模型/1000 参数变异无静默错绑;歧义和删除均可诊断 |
| Wave DSketcher 与参数化核心 | `SK-03..12``CORE-09..11``PART-ALL/PD-*` | `FC-04/07` 的未知数据保留可与核心对象映射并行 | 草图诊断与 FreeCAD 一致Part/PartDesign 七步闭环通过 |
| Wave E文件与工作台 | `FC-04..11`→P07→P08→P09 | P07/P08 在 G4/G5 后并行BIM 共享合同等待 Draft/Spreadsheet | FCStd 双向无静默丢失;每工作台创建、编辑、重算、撤销、保存、加载、导出通过 |
P10 不是最后才启动的波次:`QA-01/02/07` 从 Wave A 开始横切执行,其余 QA/REL 项在对应产物可用后立即纳入持续门禁。
### Wave A 首批交付顺序
1. 完成 GUI/34 工作台 CMake profile锁定依赖、构建参数、产物 hash 和重建命令。
2. 用 O2 实测模块导入、Gui 命令注册、选择前置和 Task 创建,不将静态候选提升为运行时能力。
3. 完成 Bitbybit/OCCT 绑定的可复现构建和 Worker 版本握手对请求实施取消、超时、stale generation 隔离和崩溃后重建。
4. 在 Chrome 中实例化 JS/WASM Worker记录 COOP/COEP、OPFS、CSP、产物 hash、启动时间和失败诊断。
5. 将 Worker 句柄账本与 JS heap、WASM memory 和 GPU 资源指标对齐,为 Wave B 的 1000 次 Boolean 门禁准备可量化基线。
## 4. 单项完成定义
一个命令、对象或格式只有同时满足以下条件才可从 `experimental` 提升:
1. 锁定 FreeCAD 的成功、失败和边界 fixture 已保存。
2. Facade 合同、取消、过期结果、Undo/Redo 和诊断均有测试。
3. 几何/求解结果在声明公差内,拓扑引用不使用瞬时索引。
4. 保存、加载、版本迁移和相关格式 round-trip 无静默丢失。
5. Chrome 目标版本的 Worker/OPFS/交互证据通过;其他浏览器测试延期至全部任务完成并收到明确通知。
6. 内存、性能、安全、许可证和能力矩阵已更新。
`compatible` 允许已记录且可解释的浏览器差异;`exact` 要求锁定版本的声明语义无差异。无法在浏览器安全实现的桌面能力必须标为受限代理,不能隐藏。
## 5. 每批统一命令
```bash
./npmw run probe:freecad-reference
./npmw run test:golden:freecad
./npmw run test:occt-history
./npmw run verify
git diff --check
jq empty config/compatibility-matrix.json
```
O2 完整桌面 oracle 建立后,所有相关探针和黄金命令必须显式设置 `FREECAD_CMD`,防止回退到仅含 Part 的缓存构建。
详细责任 lane、83 个任务、交付物、验收和交接合同见 [FreeCAD 1.1.1 全功能对标执行 WBS](freecad-full-parity-execution-wbs.zh-CN.md);机器可读任务真值为 `config/freecad-execution-plan.json`