Files
Web_FreeCAD_Bitbybit/docs/freecad-complete-parity-backlog.zh-CN.md

270 lines
24 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 全功能对标主任务账本
> 本账本是全功能范围、依赖、任务 ID 和验收证据的唯一总索引。实现状态仍以 `config/compatibility-matrix.json` 为机器可读真值;详细技术设计见 `freecad-full-parity-plan.zh-CN.md`。任何 UI、类型或 Mock 行为都不能单独计为兼容。
## 1. 对标合同
- 基线固定为 FreeCAD `1.1.1`,提交 `0108fd4b4850cc46e625b60e53cea7a7bbe69f8d`
- “全部功能”指基线源码中的 App/Base/Gui 公共行为、用户可见模块、命令、对象、属性、任务面板、文件格式、脚本/扩展入口和错误行为全部进入清册。
- 每项能力只能处于 `exact``compatible``read-only``proxy``unsupported``unsupported` 必须是经过评审的浏览器边界,有明确诊断和数据保留策略,不能代表遗漏。
- `exact`/`compatible` 必须有锁定 FreeCAD 的黄金输入、状态、输出、错误和 round-trip 报告;没有证据时最高只能是 `experimental`
- Bitbybit 是 Web 几何、Worker、序列化、IO 和三角化能力的首选实现层。先审计和复用 Bitbybit 已有 API若接口不足允许从锁定的 Bitbybit 与 OCCT 源码扩展绑定并编译 WASM不能因 npm 包暂未暴露接口而降低 FreeCAD 功能目标。
- 自构建 OCCT/Bitbybit 代码必须经过版本锁定、补丁清单、Emscripten 构建、ABI/消息 schema、许可证/SBOM、产物哈希和与 FreeCAD/现有 Bitbybit 的双端黄金测试。React 仍只能调用 Facade不能直接导入 OCCT 或 Worker。
- 所有 Node/npm 命令必须通过项目包装器 `./npmw` 执行,禁止以系统 `npm` 产生验收证据。
## 2. 基线模块范围
本地锁定源码 `src/Mod` 共 34 个目录按交付责任分组如下。P0 清册必须进一步枚举各模块的命令、对象、属性、偏好、文件格式和可选依赖,目录存在不等于用户功能存在。
| 分组 | FreeCAD 1.1.1 源码模块 | 对标处理 |
|---|---|---|
| 核心建模 | `Part``PartDesign``Sketcher``Surface` | 浏览器内参数化编辑与重算,目标至少 `compatible` |
| 文档与二维 | `Draft``TechDraw``Spreadsheet``Plot` | 创建、编辑、表达式、投影与输出闭环 |
| 工程 | `Assembly``BIM``CAM``Fem``Robot``Inspection``Measure` | 求解器/后处理器可端口则兼容,否则逐能力显式分级 |
| 数据与几何 | `Import``Mesh``MeshPart``Points``ReverseEngineering``OpenSCAD``Idf``JtReader``Material` | 格式、单位、颜色、拓扑、代理和往返差异可审计 |
| 应用体验 | `Start``Help``AddonManager``Cloud``Show``Web` | Web 等价工作流、离线帮助、扩展治理和安全边界 |
| 工具/开发 | `Sandbox``TemplatePyMod``Test``Tux` | 不伪装成最终用户工作台;保留开发/回归等价能力或明确 `unsupported` |
此外必须覆盖源码目录 `App``Base``Gui``Main` 的文档模型、Property、事务、选择、视图、参数、命令、Python 控制台、宏、偏好、快捷键、多文档、剪贴板、打印和帮助行为。
## 3. 单项完成定义
每个命令或对象的任务卡必须同时具备以下证据,缺任一项不得关闭:
1. 基线来源FreeCAD 命令 ID、对象 TypeId、Property/枚举/默认值、选择前置、可选依赖和平台差异。
2. 合同:版本化 Facade 类型、JSON Schema、能力探测、结构化诊断、取消和进度。
3. 领域行为创建、编辑、重算、删除、复制、可见性、事务、Undo/Redo、失败恢复和依赖传播。
4. 几何/求解:公差、单位、拓扑历史、确定性、资源释放和过期 generation 隔离。
5. 持久化SQLite/OPFS 保存加载、schema migration、FCStd 或原始代理数据保留。
6. 交互任务面板、Property editor、选择/预选、键盘、只读、窄屏和无障碍。
7. 互操作:相关导入/导出、FreeCAD→Web→FreeCAD round-trip 和差异报告。
8. 测试:最小成功、边界、错误、取消、黄金几何/状态、浏览器 E2E、性能和内存。
工作台只有在其范围内所有任务完成上述八项,并通过“创建→编辑→重算→撤销→保存→加载→导出”七步回放后,才能通过阶段门。
## 4. 执行波次
| 波次 | 结果 | 阻断关系 |
|---|---|---|
| W0 范围冻结 | 全模块清册、依赖、许可证、黄金 oracle、能力矩阵 | 阻断所有兼容声明 |
| W1 平台内核 | Facade、App/Gui 模型、表达式/单位、DAG、持久化、Viewport | 阻断所有工作台闭环 |
| W2 拓扑与 Sketcher | OCCT 原生历史、稳定 TopoRef、planegcs WASM、草图编辑器 | 阻断 PartDesign/TechDraw/附着 |
| W3 核心建模 | Part、PartDesign、Sketcher 参数化闭环 | 阻断生产和工程工作台 |
| W4 原生文件 | FCStd 双向往返、核心交换格式 | 阻断 G5 及后续工作台保存门禁 |
| W5 生产文档 | TechDraw、Spreadsheet、Draft、Plot | 阻断 G6 |
| W6 高级建模 | Assembly、BIM、Mesh/MeshPart、Surface | 阻断 G7 |
| W7 工程与长尾 | FEM、CAM、Robot、Inspection、数据/应用模块 | 阻断 G8 |
| W8 发布 | 全量回放、跨浏览器、性能、安全、离线、升级与回滚 | 阻断 G9 |
## 5. W0范围、基线和黄金 oracle
| ID | 任务 | 退出条件 |
|---|---|---|
| INV-01 | 从 `src/Mod`、Workbench 初始化脚本和命令注册表生成模块/工作台/命令清册 | 34 个源码模块均有分类,不存在未登记目录 |
| INV-02 | 提取 App/Gui TypeId、Property、枚举、默认值、只读/隐藏/表达式能力 | 每个核心对象能追溯到源码与最小 FCStd fixture |
| INV-03 | 提取菜单、工具栏、上下文菜单、快捷键、任务面板和选择前置 | GUI 命令均有状态与前置条件记录 |
| INV-04 | 提取偏好、参数树、导航样式、颜色/显示和平台差异 | 每项标记 document/user/session 作用域 |
| INV-05 | 提取导入/导出格式、扩展名、MIME、单位、颜色和可选库 | 格式矩阵无未解释入口 |
| INV-06 | 提取 Python API、宏、控制台、扩展和 Addon 入口 | 每项有 sandbox/兼容/不支持决策 |
| BASE-01 | 固定构建容器 digest、编译器、依赖、补丁和产物哈希 | 干净环境重建结果可追溯 |
| BASE-02 | 构建完整无界面 oracle 与可自动化 GUI oracle | Part 之外的目标模块可被回放 |
| BASE-03 | 扩充到不少于 100 个成功、50 个错误黄金文件 | 覆盖核心对象、拓扑变化、单位和错误分类 |
| BASE-04 | 建立 Web OCCT/FreeCAD 双端比较器 | 树、Property、Shape、拓扑、质量属性和诊断可差分 |
| BASE-05 | 生成 SBOM、许可证、来源和已知漏洞报告 | 所有 WASM/Worker/求解器/字典可追溯 |
### 5.1 Bitbybit/OCCT 源码构建轨道
| ID | 任务 | 退出条件 |
|---|---|---|
| BYB-01 | 盘点 Bitbybit TypeScript API、OCCT Worker 命令、IO、缓存和三角化覆盖 | 每个 GEO/PART/PD/TSN/FC 几何任务标记 `reuse`/`extend`/`custom` |
| BYB-02 | 锁定 Bitbybit 源码提交、子模块、补丁和上游 OCCT 版本 | npm 包、源码提交、生成绑定和 WASM 来源链一致 |
| BYB-03 | 建立 Bitbybit + OCCT Emscripten 可复现构建 | 干净容器产出同版本、同导出符号和可追溯 hash |
| BYB-04 | 扩展 OCCT 绑定生成规则 | 暴露拓扑历史、BRepCheck、几何属性、导入导出及各工作台缺失算法不泄漏原始指针 |
| BYB-05 | 建立版本化 Geometry Worker 协议和能力探测 | 现有 npm provider 与自构建 provider 可替换、可诊断、可取消 |
| BYB-06 | 建立 Shape 所有权、共享拓扑和细粒度释放策略 | Boolean/历史共享 Shape 长会话无悬空和不可控增长 |
| BYB-07 | 建立 Bitbybit、高层扩展绑定、原生 FreeCAD 三方差分 | 几何、拓扑、错误、公差和资源行为差异可审计 |
| BYB-08 | 上游同步和回归策略 | 更新 Bitbybit/OCCT 时自动生成 API/ABI/黄金差异,不静默漂移 |
## 6. W1平台与领域内核
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| CORE-01..04 | App 文档内核 | 多文档、DocumentObject/Extension、动态 Property、Group/Link/LinkGroup、UUID/InternalName/Label、生命周期 |
| CORE-05..08 | 事务和状态 | 嵌套事务、Undo/Redo、剪切复制粘贴、删除传播、保存点、恢复、只读、最近有效 Shape 回滚 |
| CORE-09..12 | Body/容器 | Body/Tip、Feature 顺序、Origin、Datum、Part/Group、Support、MapMode、AttachmentOffset、局部坐标链、单实体规则 |
| API-01..05 | Facade/Worker | 版本化 schema、事件、取消、进度、诊断、Bitbybit/自构建 provider 能力探测、Worker 崩溃恢复、并发与句柄所有权 |
| EXU-01..08 | Quantity/Expression | 全单位 schema、完整 parser/函数、维度/舍入、对象与 Spreadsheet 引用、循环、locale、自动完成、迁移黄金 |
| DAG-01..11 | 依赖与重算 | Link/Expression/TopoRef 统一边、SCC、稳定调度、并行层、抑制、错误传播、最小闭包、性能计数和 1000 对象基准 |
| DB-01..08 | SQLite/OPFS | 真实迁移、单写者、配额、资源 GC、检查点、崩溃注入、多标签页、备份恢复和无 OPFS 降级 |
| VIEW-01..10 | Gui/Viewport | 相机/导航、显示模式、对象/面/边/点拾取、预选、稳定 TopoRef、剖切、裁剪、测量、网格、增量缓存、LOD、GPU 回收 |
| UI-01..10 | 应用交互 | 菜单/工具栏、Combo/Task/Property、命令状态、状态栏、报告视图、多选 mixed、搜索、键盘、a11y、窄屏、主题/语言/偏好 |
## 7. W2稳定拓扑命名与 Sketcher
### 7.1 稳定拓扑命名
| ID | 任务 | 退出条件 |
|---|---|---|
| TSN-01 | 采集 30 个基础和复杂模型的 FreeCAD 命名/错误行为 | 输入、逐代历史和选择结果齐全 |
| TSN-02 | 冻结版本化 `TopoRef` schema 和迁移 | stable/ambiguous/deleted 可往返 |
| TSN-03 | 自构建 OCCT 绑定暴露 Generated/Modified/IsDeleted | Pad/Pocket/Dress-up/Boolean 返回逐输入历史 |
| TSN-04 | 建立曲面、曲线、邻接、方向和几何签名 | 不依赖三角网格精度或瞬时索引 |
| TSN-05 | 一对一/一对多评分、置信度和迁移 | 参数编辑和平移保持安全引用 |
| TSN-06 | 对称、重复、分裂、合并的歧义策略 | 低置信度不强绑,保留候选 |
| TSN-07 | Boolean、多实体、Pattern 和跨 Body 历史 | 每个源对象均有可解释映射 |
| TSN-08 | LinkSub/外部几何/数据库/FCStd 持久化 | 保存加载和版本升级引用稳定 |
| TSN-09 | 3D 拾取、预选、高亮、候选替换和附着 API | 全链路只通过 Facade |
| TSN-10 | 100 模型、1000 参数变异和随机拓扑回放 | 无静默错绑,差异可审计 |
当前工作区仅在增加 `occt-native` 类型化历史合同,尚未连接自构建 OCCT Worker不满足 TSN-03。
当前 Bitbybit 声明面的可重复证据由 `./npmw run check:bitbybit-history` 固化:布尔 API 仍只有 `HasGenerated()``BOPAlgo_Builder.Modified(shape)` 属于部分能力,且列表没有稳定索引读取;该门禁会在绑定升级后要求重新审计。
Bitbybit npm 快照仍锁定为 `.cache/bitbybit/bitbybit` 提交 `d3f52bd1fcf78148b60800d69ed6b42e53f4ad06`、版本 `1.1.1`;它本身是生成 WASM/TypeScript 产物。现在已补充独立原生 provider使用缓存 OCCT 提交 `bb75017e915f6509a4bfa8b551f853352754c2da`8.0.0)和 `TKBO` 编译完整历史 Embind。由于两个 WASM 实例的 `TopoDS_Shape*` 地址空间不同provider 内部句柄不得直接传给 Bitbybit跨 provider 接入必须走版本化序列化协议。
### 7.2 Sketcher
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| SK-01..04 | 清册与求解器 | 全命令/约束 manifest、planegcs 最小依赖、Emscripten 构建、确定性 Worker、取消/过期隔离 |
| SK-05 | 几何 | 点、线、折线、圆、圆弧、椭圆/椭圆弧、B-spline、周期曲线、构造几何、内部/外部几何 |
| SK-06..07 | 约束 | 几何、尺寸、驱动/参考、Block、表达式DOF、冗余、冲突、部分冗余与诊断分类 |
| SK-08 | 支持与外部几何 | 基准面/平面/面附着、投影、CarbonCopy、跨对象 TopoRef 迁移 |
| SK-09 | 编辑器 | 创建/修剪/延伸/分割、拖拽、自动约束、约束列表、虚拟空间、键鼠回放 |
| SK-10 | B-spline 专项 | 控制点、节点、权重、次数、周期、约束限制和编辑器 |
| SK-11 | 特征轮廓 | 闭合/开放/多环/自交验证,驱动 Pad/Pocket/Revolution/Pipe/Loft |
| SK-12 | 黄金与压力 | 500 模型,欠约束/全约束/冲突/冗余/拖拽/外部几何覆盖 |
## 8. W3Part 与 Part Design 参数化闭环
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| PART-01..04 | 基础 Shape | 全基本体、Placement、ShapeBuilder、Line/Plane/Helix/Prism/Wedge、Compound/CompSolid/Solid/Shell/Wire |
| PART-05..08 | Boolean/检查 | Union/Cut/Common/Fragments、Section/Slice、Refine、BRepCheck、容差、自交、修复和错误语义 |
| PART-09..12 | 生成/修改 | Extrude/Revolve/Mirror/Scale/Offset/Thickness/Loft/Sweep/Pipe、Fillet/Chamfer/Draft |
| PART-13..16 | 拓扑/互操作 | ShapeBinder、SubShapeBinder、多实体历史、测量、颜色、STEP/IGES/BREP 与黄金套件 |
| PD-01..03 | Body/基准/附着 | Body/Tip/Origin、DatumPlane/Line/Point、Support/MapMode/AttachmentOffset、跨 Body 规则 |
| PD-04..07 | 基础特征 | Pad/Pocket/Revolution/Groove 的两长度、对称、反向、到面/到首个/到最后、Midplane、Taper |
| PD-08..10 | 放样与管道 | Additive/Subtractive Loft/Pipe、截面排序、路径、过渡、方向和失败恢复 |
| PD-11..13 | Dress-up | Fillet/Chamfer/Draft/Thickness 的稳定选边选面、变半径/模式、局部历史 |
| PD-14..16 | 变换与孔 | Mirrored/Linear/Polar/MultiTransform 的特征列表/轴面/单实体Hole 轮廓、定位、沉孔、锪孔、钻尖、螺纹和标准 |
| PD-17..18 | 高级链与验收 | Boolean、ShapeBinder、Clone、抑制/Tip 重定向、多配置;完整参数编辑/Undo/FCStd 回放 |
## 9. W4文件、项目和数据交换
| ID | 任务 | 退出条件 |
|---|---|---|
| FC-01..03 | FCStd 样例与安全容器 | 核心/扩展对象样例ZIP/XML/资源限制和恶意文件拒绝 |
| FC-04 | `Document.xml`/`GuiDocument.xml` 双向映射 | 树、Property、Extension、视图状态可往返 |
| FC-05 | BRep/Shape/缩略图资源读写 | 精度、拓扑数、颜色和资源引用有差异报告 |
| FC-06 | Expression/Unit/Link/TopoRef/Sketch 序列化 | 保存后可由 FreeCAD 重算或明确 proxy |
| FC-07 | 未知对象/属性/扩展原样保留 | 读写后无静默丢失,脚本永不自动执行 |
| FC-08 | STEP/IGES/BREP 导入导出 | 100 个模型的单位、颜色、几何和拓扑黄金 |
| FC-09 | STL/OBJ/PLY/DXF/SVG/PDF/glTF/IFC/CSV/JT/IDF | 每种格式有能力、精度、失败和 round-trip 报告 |
| FC-10 | FreeCAD↔WebCAD↔FreeCAD 双向回放 | 核心对象可编辑,代理对象字节/语义保留 |
| FC-11 | 大文件/损坏/中断/恢复 | 能力上限内不崩溃,超限明确拒绝或流式降级 |
| PKG-01..04 | `.webcad` 项目包 | manifest/hash/schema、导入导出、备份、迁移回滚、干净浏览器恢复 |
## 10. W5-W7工作台任务
### 10.1 生产文档与二维
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| TD-01..15 | TechDraw | Page/Template、正投影视图、投影组、剖视/局部/辅助/断开、隐藏线、尺寸/公差/GD&T、中心线、气泡、注释、SVG/PDF/打印比例、TopoRef 更新 |
| SS-01..10 | Spreadsheet | Sheet/Cell、公式、alias、样式/合并、行列操作、对象绑定、DAG 循环、CSV、XLSX 能力决策、大表性能 |
| DRAFT-01..14 | Draft | Working Plane、网格/捕捉、Line/Wire/Arc/Circle/Ellipse/Rectangle/Polygon/BSpline/BezCurve、Text/Dimension、Move/Rotate/Scale/Offset/Trim/Array/Clone、Layer 与参数化 |
| PLOT-01..06 | Plot | 数据序列、轴/图例/样式、Spreadsheet/结果绑定、更新、图片/SVG/CSV 输出 |
### 10.2 高级建模和工程
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| ASM-01..16 | Assembly | Assembly/Component/Link、LCS/Joint、固定/距离/角度/滑动/转动/球等连接、Ondsel solver WASM、变体、运动、碰撞、爆炸图、BOM、FCStd |
| BIM-01..20 | BIM | Site/Building/Level/Space、Wall/Structure/Slab/Roof/Stairs/Window/Door/Equipment、材料/属性集、Draft 联动、IFC2x3/IFC4、分类、数量/清单、代理 |
| MESH-01..14 | Mesh/MeshPart | STL/OBJ/PLY、生成/转换、分析、法向、非流形、自交、孔修补、平滑、简化、布尔、截面、大网格 Worker/LOD |
| SURF-01..14 | Surface | Bezier/BSpline、Ruled/Loft/Sweep、Fill、Sections、Offset、Extend、Trim、Split、Join/Sew、连续性和容差、TopoRef |
| FEM-01..18 | Fem | Analysis、Material、Geometry/element sets、网格器、边界/载荷、CalculiX/Elmer 等求解器能力、WASM/远端策略、求解、结果场、单位、VTK/导出 |
| CAM-01..20 | CAM | Job/Stock、ToolBit/Controller、SetupSheet、Profile/Pocket/Contour/Drill/Adaptive/Surface、dress-up、仿真、碰撞、post sandbox、G-code 黄金 |
| ROBOT-01..12 | Robot | 机器人模型、轴/姿态、轨迹、工作空间、运动学、碰撞、程序与控制器导出;外部设备能力分级 |
| INSP-01..10 | Inspection/Measure | 距离/角度/面积/体积/曲率、剖切、偏差、几何检查、TopoRef 标注、报告、单位/精度和导出 |
### 10.3 数据、应用与长尾模块
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| PTS-01..08 | Points | 点云导入、显示、裁剪、变换、下采样、曲面/网格转换、大数据 Worker |
| RE-01..10 | ReverseEngineering | 点/网格采样、曲线/曲面拟合、截面、识别、误差可视化和可编辑结果 |
| OSC-01..08 | OpenSCAD | `.scad` 导入/导出、CSG 映射、外部 OpenSCAD 可用性、沙箱、颜色/单位和代理 |
| IDF-01..06 | IDF | PCB/元件/孔/板框导入导出、单位、层/颜色、往返 |
| JT-01..06 | JtReader | JT 版本/压缩能力、装配树、几何/PMI/颜色、流式读取、代理 |
| MAT-01..08 | Material | 材料卡、物理/外观属性、继承、库、单位、BIM/FEM/CAM 共享和 FCStd |
| IMP-01..08 | Import | 格式注册、探测、单位、颜色、进度、取消、错误和批量导入统一层 |
| APPMOD-01..08 | Start/Help/Show/Web/Cloud | 最近项目、模板、示例、离线帮助、对象展示/分享、URL 安全、云连接器能力和隐私 |
| ADDON-01..10 | AddonManager | 插件目录、签名/来源、依赖、安装/更新/卸载、权限、隔离、回滚、离线包;不可执行桌面 Python 时明确代理 |
| SCRIPT-01..10 | Python/宏/控制台 | FreeCAD API 兼容面、Pyodide/受限解释器决策、文件/网络权限、录制/回放、超时、资源配额、不可端口 API 诊断 |
| GUI-REST-01..10 | 桌面通用功能 | 多窗口/MDI 等价、剪贴板、打印、参数编辑器、自定义工具栏/快捷键、主题、语言、导航设备能力 |
| DEV-01..06 | Sandbox/TemplatePyMod/Test/Tux | 开发模板、测试运行器、GUI 自动化入口和明确非产品能力矩阵 |
## 11. W8质量与发布门禁
| ID | 任务 | 退出条件 |
|---|---|---|
| QA-01 | 单元、属性、parser、图算法与领域状态覆盖 | 核心错误分支和不变量有自动测试 |
| QA-02 | FreeCAD CLI/GUI 对照器 | 每个兼容命令至少一个成功和一个失败 fixture |
| QA-03 | Chrome E2E 与视觉基线 | 目标版本矩阵可审计,无 P0/P1 回归 |
| QA-04 | 几何/求解确定性与 fuzzing | 公差内稳定,随机输入不崩溃/错绑 |
| QA-05 | 性能和内存 | 1000 对象、百万三角形、大装配、大表、长会话 P95/峰值达预算 |
| QA-06 | Worker/WASM/OPFS 故障注入 | 取消、崩溃、配额、断电点、过期结果和恢复行为通过 |
| QA-07 | 文件与消息安全 | zip bomb、路径穿越、XML、表达式、脚本、post、插件和 Worker 消息 fuzzing 通过 |
| QA-08 | 可访问性/国际化/移动 | 键盘核心流、焦点、读屏、locale、长文本和目标视口通过 |
| REL-01 | PWA/离线/cache/COOP/COEP/CSP | 首装、升级、离线和缓存失效可恢复 |
| REL-02 | 数据迁移与回滚演练 | 最近支持版本可升级,可回滚或无损导出 |
| REL-03 | SBOM/许可证/漏洞/产物签名 | 无未知二进制和未处置高危问题 |
| REL-04 | 能力矩阵和差异报告 | 每项功能有准确等级,无未解释 `unsupported` |
| REL-05 | 发布 runbook/遥测/支持流程 | 可部署、监控、诊断、恢复和撤回 |
## 12. BYB-04 原生拓扑历史与跨 WASM 传输增量
本轮已完成 BYB-04 的第一版实际编译和 BYB-05 的协议合同层:`native/occt-history` 从缓存 OCCT `bb75017e915f6509a4bfa8b551f853352754c2da`8.0.0)构建 `TKBO``TKDESTEP``TKXSBase``TKDE` 和 Embind WASM`./npmw run test:occt-history` 通过,`shapeToStep -> booleanHistoryFromStep(cut)` smoke case 返回 42 条原生关系记录。`mapNativeOcctHistoryRecords``createNativeOcctStepHistoryBridge` 和版本化 `NativeOcctHistoryCoordinator` 已把 provider 协议接入 Facade 类型边界,覆盖 STEP 校验、取消、超时和 stale 文档版本。该 provider 当前仍是独立 WASM 实例;跨 Bitbybit 主 WASM 只能通过 STEP 文本序列化交换,不能直接传递指针。
该增量不提升完整 FreeCAD 兼容等级:原生 provider 现在可通过 Facade `geometry.configureNativeHistory()` 显式配置并进入 Boolean 重算,但仍不是默认 GeometryRuntime也未覆盖全部 PartDesign/工作台操作;浏览器真实 WASM 实例化、Worker 崩溃恢复、STEP 精度/单位策略、BRep/IGES 和 Bitbybit↔原生↔FreeCAD 三方黄金差分仍由 `BYB-05..08``TSN-03..10``FC-08` 和发布门禁负责。
## 13. 当前真实状态与最近执行队列
当前仅 `Part Design``Part``Sketcher``experimental`Draft、TechDraw、Spreadsheet、Assembly、Mesh 只有 UI/只读原型其余多数模块未实现。FCStd 已有安全预检、元数据、对象属性字段投影和 proxy 报告,但仍不可编辑/双向 round-trip。基础 oracle 只有 5 个 Part 场景。
本机参考环境、R0-R9 执行批次、立即队列和单项完成定义见 [FreeCAD 1.1.1 全功能对标执行路线图](freecad-reference-execution-roadmap.zh-CN.md)。当前缓存 oracle 是 headless `Part/Material/Measure` 子集;完整桌面工作台行为必须由 O2 oracle 单独采集。
详细执行分配见 [FreeCAD 1.1.1 全功能对标执行 WBS](freecad-full-parity-execution-wbs.zh-CN.md)。`config/freecad-execution-plan.json` 当前登记 10 个 owner lane、10 个 program/gate 和 83 个带依赖、交付物及验收条件的任务,并由 `./npmw run check:execution-plan` 校验;`config/freecad-source-inventory.json` 记录锁定源码的 34 个模块、CMake 开关、App/Gui 目录、Python 文件和命令入口,由 `./npmw run check:freecad-inventory` 校验;`config/freecad-type-property-inventory.json` 记录源码可追溯的 TypeId/Property 候选,由 `./npmw run check:freecad-type-properties` 校验。
最近执行队列不得跳过依赖:
1. 完成 `BASE-01..04``INV-01..06``BYB-01..03`,生成全命令/对象/属性清册、完整 oracle 和可复现 Bitbybit/OCCT 源码构建。
2. 完成 `BYB-04..08``TSN-03..10`:扩展真正 OCCT 历史、稳定签名、跨 Boolean、3D 选择与三方回放。
3. 完成 `SK-03..12`planegcs WASM、全约束、编辑器、外部几何和压力套件。
4. 完成 `CORE-09..12``PART-*``PD-*`,通过 Part Design 参数化闭环。
5. 完成 `FC-04..11``PKG-*`,通过 FCStd 双向 round-trip。
6. 依次完成 `TD-*``SS-*``DRAFT-*``PLOT-*`
7. 依次完成 `ASM-*``BIM-*``MESH-*``SURF-*`
8. 完成 FEM/CAM/Robot/Inspection、数据模块、应用模块、脚本/扩展和桌面通用能力。
9. 完成 `QA-*``REL-*`F0-F9/G0-G9 全部通过后才允许宣称“完整对标”。
## 14. 里程碑维护规则
每个独立里程碑必须同步实现、聚焦测试、本账本状态、`config/compatibility-matrix.json`、总体方案和接续状态。统一执行:
```bash
./npmw run verify
git diff --check
jq empty config/compatibility-matrix.json
```
涉及原生 oracle 的里程碑另执行:
```bash
./npmw run test:golden:freecad
```
提交信息、差异报告和兼容等级必须准确描述边界;不得把 facade 合同、类型、UI 或 mock 测试写成 FreeCAD 几何/文件兼容已完成。