feat: classify recovered naming drift
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled

This commit is contained in:
2026-08-15 01:01:54 -04:00
parent 5bbd7b9d4f
commit ea3706bd3d
21 changed files with 18736 additions and 15778 deletions

View File

@@ -1,6 +1,6 @@
# FreeCAD Web 转换执行总计划
更新时间2026-08-14
更新时间2026-08-15
## 1. 目标、口径与真值
@@ -48,7 +48,7 @@
- Oracle352 个注册对象、348 个可实例化对象、4 个不可实例化对象、1111 个启动 GUI command、19 个 source-only command 和 2 个 context-only command 已分类;命令族的成功、禁用、失败、取消、恢复流程仍未穷尽。
- Property85 种运行时类型、5510 条记录中22 种/4304 条为通用原生 codec5 种/683 条为专用 codec58 种/523 条仍为 opaque proxy。
- Property status15 类已观察状态均已进入类型化 Facade 行为;`LockDynamic``PartialTrigger` 已有原生事务证据,但完整 observer 与局部重算序列未关闭。
- TSN30/30 原生 mutation、219/219 几何阶段恢复通过;11 个 PartDesign case28 个恢复命名摘要演进仍需逐 case 解释。
- TSN30/30 原生 mutation、219/219 几何阶段恢复通过;`partdesign-plain``partdesign-midplane`4 个恢复命名阶段已通过第二次独立原生复跑分类为允许演进,剩余 9 个 PartDesign case/24 个阶段待解释。
- 生产命名链:五阶段 5/5 几何恢复,但仍有 3/5 通用 Shape 代理、缺 rotate mutation family、5 个下游语义拓扑恢复漂移。
- 有序操作19×19 共 361 对,仅 4 对已有分类回放357 对待原生接受/拒绝判定。
- FCStd支持的原生 codec 与未知资源保留已有证据,但所有对象/属性/Extension/Shape/ElementMap2/StringHasher 的 FreeCAD-Web-FreeCAD 双向变异未穷尽。
@@ -110,23 +110,23 @@ FCStd / STEP / IGES / mesh / CAM / engineering resources
- `ORA-GUI-MERGE-000`:合并分片并校验 ID 全集、连续区间和 SHA-256。
- `ORA-GUI-CONTEXT-000..001`:分类 `Import_ReadBREP``NaviCubeDraggableCmd` 的延迟注册边界。
### 5.2 ORA GUI 工作流7 项,执行中
### 5.2 ORA GUI 工作流7 项,已完成
- `ORA-GUI-WF-000`:选择首个命令族。已选 `PartDesign_Pad`,映射主任务 `EX-UI-03`,关联 `EX-ORA-01/EX-PD-01`
- `ORA-GUI-WF-001`Pad 原生成功工作流和聚焦断言已完成Task 打开/接受、Body Tip、体积、拓扑和 Undo 证据通过。
- `ORA-GUI-WF-002`只采集无活动文档时的 disabled 工作流,执行中
- `ORA-GUI-WF-003`只采集无效 open-wire profile 的 failure 工作流。
- `ORA-GUI-WF-004`只采集预览后 Cancel 的回滚、选择焦点工作流
- `ORA-GUI-WF-005`只采集失败/取消后修复、成功、Undo/Redo、保存重开的恢复工作流
- `ORA-GUI-WF-006`更新 exact blocker、聚焦门禁和下一命令族选择规则
- `ORA-GUI-WF-002`:无活动文档时的 disabled 工作流已完成QAction 与命令管理器入口均被阻止文档、Task 和事务保持为空
- `ORA-GUI-WF-003`open-wire profile 的 failure 工作流已完成原生诊断、Task 可修正状态和失败清理回滚均已锁定
- `ORA-GUI-WF-004`有效预览后 Cancel 工作流已完成;回滚、活动 Body 及原生选择/焦点轨迹均已锁定
- `ORA-GUI-WF-005`失败后在同一 Task 内修复 profile、提交、Undo/Redo、保存重开和二次保存,已完成
- `ORA-GUI-WF-006`exact blocker、聚焦门禁和后继 TSN 队列已更新,已完成
### 5.3 TSN 恢复漂移13 项,待 ORA 工作流
### 5.3 TSN 恢复漂移13 项,执行中
按以下顺序一次解释一个 case
1. `partdesign-plain`
2. `partdesign-midplane`
3. `partdesign-reverse`
1. `partdesign-plain`,已完成,分类为允许演进
2. `partdesign-midplane`,已完成,分类为允许演进
3. `partdesign-reverse`,当前唯一执行项
4. `partdesign-taper`
5. `partdesign-twoside`
6. `partdesign-pocket`
@@ -140,6 +140,8 @@ FCStd / STEP / IGES / mesh / CAM / engineering resources
每项必须得到且只能得到一种结论FreeCAD 稳定语义、允许的命名演进、实现缺陷。实现缺陷必须增加回归测试;未知不能作为结论。
每个 case 再拆成六个不可合并的最小检查点:先锁定属性、初值/编辑值/恢复值和漂移 ordinal再执行第二次独立 FreeCAD 1.1.1 探针;然后逐阶段比较 geometry/relation/semantic-name 三摘要;接着验证恢复阶段与保存前 nominal 一致;再验证 save/reopen/resave 三态不继续漂移;最后写入分类账本、运行聚焦 checker 并只推进一个队列项。任一检查点失败时,当前任务保持 `in_progress`,不得领取下一 case。
### 5.4 TSN 有序操作对361 项4 完成/357 待办
操作全集为 Fuse、Cut、Common、Rotate、Pad、Pocket、Loft、Pipe、Revolution、Groove、Fillet、Chamfer、Hole、Draft、Thickness、LinearPattern、PolarPattern、Mirrored、MultiTransform。
@@ -173,7 +175,7 @@ FCStd / STEP / IGES / mesh / CAM / engineering resources
### M01 `EX-ORA-01` GUI 工作流闭合
状态:执行 `ORA-GUI-WF-002`
状态:首个 Pad 命令族 7/7 已完成;`EX-ORA-01` 因其他命令族和运行时对象/Property 未穷尽而继续 `in_progress`
先完成 Pad 七步,再按风险选择下一族。每个后续命令族仍拆成 success/disabled/failure/cancel/recovery/update 六个状态任务。选择顺序:核心文档命令 -> Sketcher 创建/编辑 -> PartDesign 参数 Task -> Part builder -> FCStd import/export -> 其他工作台。
@@ -181,9 +183,9 @@ FCStd / STEP / IGES / mesh / CAM / engineering resources
### M02 `EX-TSN-04A` 恢复漂移闭合
状态:等待 M01
状态:`TSN-DRIFT-000..001` 已完成,执行 `TSN-DRIFT-002`
- M02.1-M02.1111 个 PartDesign case逐 case 解释 28 个命名摘要演进。
- M02.1-M02.1111 个 PartDesign case逐 case 解释 28 个命名摘要演进;当前完成 2/11 case、4/28 阶段,剩余 9/11 case、24/28 阶段
- M02.12:生产 Cut 恢复拓扑漂移。
- M02.13:生产 Rotate 恢复拓扑漂移。
- M02.14:若发现实现缺陷,只修改一个 operation/case 并补回归。
@@ -370,4 +372,18 @@ M00
`ORA-GUI-WF-001` 也已完成:锁定 FreeCAD 1.1.1 的 Pad 成功 GUI 工作流通过原生命令打开 Task点击 `Done` 后清理 edit 状态,得到 `PartDesign::Pad`、Body Tip=Pad、体积 120、6 面/12 边/8 点和 UndoCount=1。
当前唯一下一任务为 `ORA-GUI-WF-002`:只采集无活动文档时 `PartDesign_Pad`disabled 状态并证明调用被阻止且不创建文档、Task 或事务。failure/cancel/recovery 必须留给各自后继任务。
`ORA-GUI-WF-002` 已完成:在独立原生进程中,`PartDesign_Pad``isActive()` 与 QAction 均为 falseQAction trigger 和 `Gui.runCommand()` 两条入口都未创建文档、Task 或事务。
`ORA-GUI-WF-003` 已完成open-wire profile 打开无效 Pad 预览,接受时原生报告 `Wire is not closed.`Task 保持打开;失败清理 reject 后临时 Pad 与事务被回滚,原有 Body/Sketch 状态保持不变。
`ORA-GUI-WF-004` 已完成17.5 mm Pad 预览为 210 体积的有效单实体reject 后临时 Pad、Tip 变化与事务全部回滚,活动 Body 保持不变。原生选择从 Sketch 被消费为空并保持为空;焦点从 3D View 进入 `lengthEdit`,取消后落到 TaskView而非恢复原 3D View。
`ORA-GUI-WF-005` 已完成open-wire Pad 首次接受产生 `Wire is not closed.`Task 保持可修正;同一 Task 内补齐闭合矩形并通过 `lengthEdit.rawValue` 输入 12 mm 后,预览和提交均为 6 面/12 边/8 点、体积 144 的有效单实体。Undo 回到两段 open-wire 且 Pad 不存在Redo 恢复 12 mm Pad保存、关闭重开、再次保存和再次重开均保持相同语义。
`ORA-GUI-WF-006` 已完成工作流计划、exact blocker、聚焦 checker 和活动队列同步Pad 命令族 7/7 关闭,但没有据此提升 `EX-ORA-01``EX-UI-03` 或系统 exact。
`TSN-DRIFT-000` 已完成:`partdesign-plain``Length 7 -> 7.75 -> 7` 在 Body 和 Pad 两个阶段恢复相同几何,但从首次创建命名演进为新的稳定历史。锁定报告与第二次独立 FreeCAD 1.1.1 复跑的逐阶段摘要一致,演进值又在 save/reopen/resave 中保持,因此分类为 `allowed_evolution`,不是 Web 实现缺陷。
`TSN-DRIFT-001` 已完成:`partdesign-midplane``Length 8 -> 8.75 -> 8` 在 Body11 和 Pad11 两个阶段恢复相同几何,关系与语义命名摘要演进为新的稳定历史。锁定报告与第二次独立 FreeCAD 1.1.1 复跑的逐阶段摘要一致,演进值在 save/reopen/resave 中保持,因此同样分类为 `allowed_evolution`,不是 Web 实现缺陷。
当前唯一下一任务为 `TSN-DRIFT-002`:只解释 `partdesign-reverse` 的恢复命名阶段。退出条件仍是第二次原生复跑一致、恢复几何一致、持久化稳定,并且在稳定语义、允许演进、实现缺陷三者中得到唯一机器可读结论。