feat: resolve topology reference candidates
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Web FreeCAD 接续执行状态
|
||||
|
||||
更新时间:2026-08-03(TSN generation 写回里程碑完成,待提交)
|
||||
更新时间:2026-08-03(TopoRef 候选替换里程碑完成,待提交)
|
||||
|
||||
## 1. 当前目标
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
- 分支:`main`
|
||||
- 云仓库:`http://154.8.160.151:3000/wangdequan/Web_FreeCAD_Bitbybit.git`
|
||||
- 最近已推送里程碑:`501f43f feat: apply object placement during recompute`
|
||||
- 最近已推送里程碑:`ffbe2c6 feat: persist generation topology history`
|
||||
- 最近已推送里程碑的完整门禁:`./npmw run verify` 通过
|
||||
- 当前 TSN 未提交工作区验证:`./npmw run verify` 通过(Facade 63/63),diff/JSON 校验通过
|
||||
- 当前候选替换未提交工作区验证:`./npmw run verify` 通过(Facade 64/64),diff/JSON 校验与桌面/移动截图通过
|
||||
- 生产构建:通过
|
||||
- 本地开发地址:`http://127.0.0.1:5173/`
|
||||
- 兼容真值表:`config/compatibility-matrix.json`
|
||||
@@ -29,6 +29,7 @@
|
||||
7. Vector、Placement、LinkList/StringList 结构化属性合同;Placement 深拷贝、校验、撤销、持久化和 UI 编辑器。
|
||||
8. 对象级 Placement 重算:基本体/特征 Shape 生成后执行平移与轴角旋转;恒等变换跳过额外 Shape;变换失败释放临时 Shape 并保留上一次有效缓存;保存后恢复的 Placement 可再次驱动重算。
|
||||
9. TSN generation 写回:重算成功后采集面/边/点签名快照与保守历史;迁移 LinkSub/草图外部几何;歧义或删除引用标脏所有者并生成可定位诊断;schema v6 保存对象拓扑快照。
|
||||
10. TopoRef 候选替换事务:属性面板/诊断页从源对象当前同 kind 拓扑候选中原子替换 LinkSub 或外部几何引用,重建 DAG、标脏重算并支持 Undo/Redo。
|
||||
|
||||
相关提交按新到旧:
|
||||
|
||||
@@ -57,7 +58,7 @@
|
||||
|
||||
1. 补齐 P2 浏览器实证门禁:真实 SQLite v4→v5 升级、OPFS 孤儿清扫、QuotaExceeded、大文件和崩溃注入;合同层与 fallback 测试已由 `6bfbdf5` 完成。
|
||||
2. 补齐 P3-03 浏览器 OCCT 包围盒/体积黄金测试,并验证 Placement 撤销、保存和恢复的真实 Worker 路径;Node/fallback 合同已通过。
|
||||
3. 为 ambiguous/deleted TopoRef 补 3D 候选高亮和用户替换事务,并增加真实 OCCT/SQLite 浏览器回放;当前仅有 Facade 诊断与选择所有者流程。
|
||||
3. 为 ambiguous/deleted TopoRef 补 3D 候选高亮,并增加真实 OCCT/SQLite 浏览器回放;候选替换 Facade 事务和属性/诊断 UI 已进入当前里程碑。
|
||||
4. 在获得 FreeCAD `1.1.1` 源码/构建输入后完成 `SK-03` planegcs WASM POC;此前继续补充回放夹具、约束分类和 Sketch 编辑事务。
|
||||
5. 扩展 PartDesign:Mirrored、MultiTransform、Loft/Pipe/Groove、Thickness/Draft,以及 Pattern/Hole 完整语义。
|
||||
6. 完成 FCStd 原生对象/属性/Shape 双向映射和 STEP/IGES/STL/Web CAD 包导入导出。
|
||||
@@ -112,8 +113,17 @@ Placement 里程碑涉及实现、测试、兼容矩阵和三份状态/方案文
|
||||
- 每个对象快照记录 generation、文档版本、迁移 matches 和 `signature-fallback` 历史;拓扑采集失败释放本轮 Shape,最近有效缓存不被覆盖。
|
||||
- 重算提交遍历 `App::PropertyLinkSub` 与 Sketch 外部几何:稳定引用写回新 generation;歧义/删除引用不强绑,所有者保持 dirty/warning 并产生 `TOPOLOGY_REFERENCE_AMBIGUOUS/DELETED` 诊断。
|
||||
- schema v6 新增 `objects.topology_json`,fallback 保存/加载已验证快照深克隆;真实 SQLite/OPFS v5→v6 升级尚未进行浏览器实证。
|
||||
- 完整 `./npmw run verify`、diff/JSON 校验均通过;提交与推送仍待执行。
|
||||
- 完整 `./npmw run verify`、diff/JSON 校验均通过;里程碑已由 `ffbe2c6` 推送。
|
||||
|
||||
这仍不是 OCCT/FreeCAD 原生历史:签名来自三角网格,缺少曲面/曲线参数、邻接图和 Boolean 的逐输入原生历史。诊断能定位引用所有者,但 3D 候选高亮与原子替换 UI 尚未实现,因此 F3/TSN-03/07/09 不能标记完成。
|
||||
这仍不是 OCCT/FreeCAD 原生历史:签名来自三角网格,缺少曲面/曲线参数、邻接图和 Boolean 的逐输入原生历史。候选替换事务/UI 已在下一里程碑补齐,但 3D 候选预选与高亮尚未实现,因此 F3/TSN-03/07/09 不能标记完成。
|
||||
|
||||
## 10. 2026-08-03 TopoRef 候选替换快照
|
||||
|
||||
- 新增 Facade `resolveTopologyReference()` 事务,按所有者、PropertyLinkSub/ExternalGeometry 名称和候选 persistentId 定位引用;候选必须存在于源对象最新拓扑快照且 kind 一致。
|
||||
- 用户明确选择后写入 stable TopoRef 和最新 generation,重建 `topo-ref` DAG 边,标脏依赖闭包,更新文档版本并进入 Undo/Redo 与自动保存。
|
||||
- 属性面板对 ambiguous/deleted LinkSub 显示候选菜单;诊断页对 LinkSub 和草图外部几何显示候选替换控件。非法候选拒绝,不修改文档。
|
||||
- 完整 `./npmw run verify`、diff/JSON 校验通过;Chrome 桌面/移动布局无重叠,SwiftShader 延时截图确认 OCCT canvas 非空;提交和推送仍待执行。
|
||||
|
||||
尚未完成 3D 面/边/点候选预选与高亮,也没有真实 OCCT 浏览器黄金回放,因此 TSN-09/F3 仍保持进行中。
|
||||
|
||||
本里程碑不得声称 P3-03、F3 或完整 FreeCAD 兼容已经通过。当前对象 Placement 是 Shape 生成后的对象级变换,尚未证明 FreeCAD 对 Body/Tip、Support、AttachmentOffset 和局部坐标链的完整等价语义。
|
||||
|
||||
Reference in New Issue
Block a user