feat: classify recovered naming drift
This commit is contained in:
@@ -1911,3 +1911,53 @@ Node 与真实 Chrome 的 19-operation 生产矩阵均重跑通过。17 类样
|
||||
`ORA-GUI-WF-001` 随后在隔离 Xvfb 的锁定 FreeCAD 1.1.1 桌面进程真实执行。原生命令从已选矩形 Sketch 打开 Pad Task,TaskView 的实际接受按钮为 `Done`;接受并清理 edit 状态后得到 `PartDesign::Pad`,Body Group 为 `Sketch,Pad`、Tip=Pad、Profile=Sketch、Length=10,实体为 6 面/12 边/8 点、体积 120、状态 Up-to-date,UndoCount=1。报告只声明 success,remainingStates 仍为 disabled/failure/cancel/recovery。队列前移为 112 completed、1 in_progress、374 pending,唯一下一项是 `ORA-GUI-WF-002`。
|
||||
|
||||
本轮完整 `./npmw run verify` 以退出码 0 完成,生产构建、79 个签名发布文件、34 模块 release closure 和 Ed25519 验签通过;能力矩阵仍准确保持 0 exact、26 compatible、5 proxy、3 development。
|
||||
|
||||
## 244. 2026-08-14 ORA-GUI-WF-002 Pad 无文档禁用工作流
|
||||
|
||||
Pad GUI oracle 现以两个独立的隔离 Xvfb/FreeCAD 1.1.1 进程采集 success 与 disabled 状态。disabled 进程激活 Part Design 工作台但不创建文档,原生 `PartDesign_Pad` 的 `isActive()` 与 QAction `isEnabled()` 均为 false;对 disabled QAction 调用 `trigger()` 不产生 triggered 信号,直接调用 `Gui.runCommand("PartDesign_Pad")` 也被命令管理器的 `isActive()` 门阻止。
|
||||
|
||||
两条激活入口前后均采集应用文档集合、活动 App/Gui 文档、选择、`Gui.Control.activeDialog()`、编辑对象、全局 active transaction 与逐文档 Undo/Redo 作用域。实际结果始终为 0 个文档、无活动 Task/edit、无全局事务且无文档事务作用域;聚焦 checker 对四个前后快照 fail-closed。`ORA-GUI-WF-002` 已关闭,队列前移为 113 completed、1 in_progress、373 pending,唯一下一项是 `ORA-GUI-WF-003` failure 工作流。
|
||||
|
||||
本轮聚焦原生 probe/check、工作流计划、PartDesign Chrome 生命周期、Facade 测试和 `check:execution-plan` 均通过;完整 `./npmw run verify` 也以退出码 0 完成,包含生产构建、79 个签名发布文件、34 模块 release closure 与 Ed25519 验签。
|
||||
|
||||
## 245. 2026-08-14 ORA-GUI-WF-003 Pad 原生失败工作流
|
||||
|
||||
Pad GUI oracle 新增隔离的 failure 进程:活动 Body 中选择由两条线段构成的 open-wire Sketch,原生命令创建 `PartDesign::Pad` 无效预览并保持 Pad Task 打开;点击接受后捕获 FreeCAD `Input error` 对话框及精确诊断 `Wire is not closed.`。诊断关闭后 Task、活动事务和无效预览仍保留,可继续修正参数。
|
||||
|
||||
失败态采集完成后仅执行 Task reject 做资源清理;临时 Pad 被删除,活动事务归零,Body Tip、原始对象全集、Sketch 两条几何、Shape 有效性和文档基线均恢复。聚焦 checker 对诊断、失败保留态与清理回滚逐项 fail-closed。`ORA-GUI-WF-003` 已关闭,队列前移为 114 completed、1 in_progress、372 pending,唯一下一项是 `ORA-GUI-WF-004` cancel 工作流。
|
||||
|
||||
## 246. 2026-08-14 ORA-GUI-WF-004 Pad 原生取消工作流
|
||||
|
||||
cancel 进程从闭合 4x3 Sketch 打开 Pad Task,将 Length 改为 17.5 mm,并确认预览为体积 210 的有效单实体、Body Tip 临时指向 Pad 且 `Make Pad` 事务处于活动状态。Task reject 后临时 Pad 被删除,Body Tip 与对象全集恢复,活动 Body 保持为 Body,Sketch 的四条几何、Shape 有效性和可见性均保持,事务与 Undo/Redo 作用域归零。
|
||||
|
||||
原生结果纠正了预写配方中的两项假设:Sketch 选择在命令启动时被消费为空,取消后不恢复;焦点由 3D View 进入 `lengthEdit`,取消后落在 TaskView,也不返回原 3D View。配方和 checker 已按实际 FreeCAD 1.1.1 三阶段轨迹 fail-closed。`ORA-GUI-WF-004` 已关闭,队列前移为 115 completed、1 in_progress、371 pending,唯一下一项是 `ORA-GUI-WF-005` recovery 工作流。
|
||||
|
||||
## 247. 2026-08-14 ORA-GUI-WF-005 Pad 原生恢复工作流
|
||||
|
||||
recovery 进程从两段 open-wire Sketch 启动 Pad,首次接受捕获 `Input error: Wire is not closed.`,同时保持无效 Pad、`Make Pad` 事务和 Task 可修正状态。同一 Task 内补齐另外两条边,并通过 FreeCAD `Gui::PrefQuantitySpinBox` 的 `rawValue` 属性把 Length 输入为 12 mm;预览和提交均为 6 面/12 边/8 点、体积 144 的有效单实体,Body Tip=Pad、Profile=Sketch、状态 Up-to-date。
|
||||
|
||||
提交后的 Undo 恢复到原始两段 open-wire、删除 Pad 并产生 Redo;Redo 恢复四段闭合 Sketch 与 12 mm Pad。随后 FCStd 保存、关闭重开、再次保存、再次关闭重开均保持 Length=12、体积 144、Body Group=`Sketch,Pad` 和 Tip=Pad。原生探针还纠正了预写控件类型假设:`lengthEdit` 不能按标准 `QDoubleSpinBox` 驱动,必须使用自定义控件的 double 型 `rawValue` Qt 属性。`ORA-GUI-WF-005` 已关闭。
|
||||
|
||||
## 248. 2026-08-14 ORA-GUI-WF-006 Pad 工作流门禁收口
|
||||
|
||||
工作流计划现为 7/7 completed;checker 同时锁定 success、disabled、failure、cancel、recovery 五态和三阶段持久化精确键集合,不再依赖 JSON 对象序列化顺序。`EX-ORA-01` 与 `EX-UI-03` blocker 已同步为“首个 Pad 命令族完整、其他命令族仍开放”,系统 exact 继续为 false,模块能力仍为 0 exact、26 compatible、5 proxy、3 development。
|
||||
|
||||
活动队列前移为 117 completed、1 in_progress、369 pending,唯一下一项为 `TSN-DRIFT-000`,即只解释 `partdesign-plain` 的恢复命名演进。原生 probe/check、工作流计划、Facade 199/199、Chrome PartDesign 生命周期、执行计划和活动队列检查均通过;完整 `./npmw run verify` 以退出码 0 完成,生产构建、79 个签名发布文件、34 模块 release closure 和 Ed25519 验签通过。
|
||||
|
||||
## 249. 2026-08-15 TSN-DRIFT-000 Plain Pad 恢复命名分类
|
||||
|
||||
新增恢复命名分类证据链,以现有锁定的 FreeCAD 1.1.1 composite oracle 为参考,再独立运行一次相同原生 30-case harness。`partdesign-plain` 编辑 `Pad10.Length` 的轨迹为 `7 -> 7.75 -> 7`;Body10 与 Pad10 两个受影响阶段的几何摘要在恢复后与初值完全一致,但 relation/semantic-name 摘要从首次创建态演进到新的恢复态。参考运行和独立复跑的 before/edited/restored 三相摘要逐项一致,恢复态又与保存前 nominal 一致,并在 save/reopen/resave 三态保持不变。
|
||||
|
||||
该差异因此分类为 `allowed_evolution`,不是 Web 实现缺陷。机器报告 `config/freecad-recovered-naming-classification.json` 固定原生 harness 的 bytes/SHA-256、两次运行证据、漂移 ordinal 和唯一分类;`check:freecad-recovered-naming-classification` 对当前 composite/resave 报告重新推导全部摘要并 fail-closed。分类同时进入 TSN stage correlation blocker 与 `check:execution-plan`。
|
||||
|
||||
活动队列前移为 118 completed、1 in_progress、368 pending,唯一下一项为 `TSN-DRIFT-001`,即只解释 `partdesign-midplane` 的恢复命名演进。`EX-TSN-04` 仍为 in_progress:11 个 PartDesign case/28 个恢复命名阶段中只关闭 1 个 case/2 个阶段,剩余 10/26,系统 exact 与模块等级均不提升。
|
||||
|
||||
## 250. 2026-08-15 TSN-DRIFT-001 Midplane Pad 恢复命名分类
|
||||
|
||||
`partdesign-midplane` 在锁定 FreeCAD 1.1.1 中编辑 `Pad11.Length`,属性轨迹为 `8 -> 8.75 -> 8`。Body11 与 Pad11 两个漂移阶段的 geometry digest 恢复后与初值完全一致,relation/semantic-name digest 则从首次创建态演进到新的恢复态。锁定参考报告与第二次独立原生复跑的 before/edited/restored 三相摘要逐项一致;恢复态与保存前 nominal 一致,并在 save/reopen/resave 三态保持不变。
|
||||
|
||||
该差异因此分类为 `allowed_evolution`,`implementationDefect=false`。连续决策表现包含 `TSN-DRIFT-000..001` 两个且无未知分类;聚焦 checker 对两个 case 的属性恢复、几何恢复、命名演进、nominal 对齐、持久化稳定和独立复跑一致性 fail-closed。
|
||||
|
||||
活动队列已机器前移为 119 completed、1 in_progress、367 pending,唯一下一项为 `TSN-DRIFT-002`,即只解释 `partdesign-reverse` 的恢复命名演进。`EX-TSN-04` 仍为 in_progress:11 个 PartDesign case/28 个恢复命名阶段中已关闭 2 个 case/4 个阶段,剩余 9/24,系统 exact 与模块等级均不提升。
|
||||
|
||||
本轮聚焦分类、30-case composite、TSN correlation、exact history、执行计划与队列门禁均通过;完整 `./npmw run verify` 以退出码 0 完成,包含 199 项 Facade 测试、生产构建、79 个签名发布文件、34 模块 release closure 和 Ed25519 验签。验证后 `git diff --check`、310 个 JSON 解析与发布产物一致性复核再次通过。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Web FreeCAD 当前工作主线
|
||||
|
||||
更新时间:2026-08-14
|
||||
更新时间:2026-08-15
|
||||
|
||||
## 1. 唯一目标
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
## 2. 当前真实状态
|
||||
|
||||
截至 2026-08-14:
|
||||
截至 2026-08-15:
|
||||
|
||||
- 系统级 FreeCAD exact claim 为 `false`。
|
||||
- 34 个模块中 `0 exact`、`26 compatible`、`5 proxy`、`3 development`。
|
||||
@@ -18,7 +18,7 @@
|
||||
- exact 计划共 52 项:`5 completed`、`36 in_progress`、`11 pending`。
|
||||
- 已完成的 exact 项只有 `EX-TSN-00..03` 和 `EX-PD-02`:原生命名证据边界、逐阶段历史、生产私有命名、同构来源处理,以及 Attachment/XLink 生命周期。
|
||||
- exact 发布任务 `EX-REL-01` 仍为 `pending`,34 个模块都不得提升为 exact。
|
||||
- 当前工作树包含 TSN 逐阶段相关性、Property 状态/codec、CAM/LinuxCNC 验证资产、oracle 清册分类和首个 Pad GUI 工作流增量;聚焦门禁、完整 `verify`、发布产物验签和最终差异校验均已通过。
|
||||
- 当前工作树包含 TSN 逐阶段相关性、Property 状态/codec、CAM/LinuxCNC 验证资产、oracle 清册分类和首个 Pad GUI 五态工作流;聚焦门禁、完整 `verify`、发布产物验签和最终差异校验均已通过。
|
||||
|
||||
状态冲突时按以下顺序取真值:
|
||||
|
||||
@@ -73,11 +73,11 @@ EX-DOC-01 -> EX-DOC-03 ---------^
|
||||
|
||||
### P0-A:锁定完整原生 oracle
|
||||
|
||||
对应 `EX-ORA-01/02`。当前隔离配置下有 1111 个工作台启动命令、19 个 source-only 命令和 2 个上下文延迟命令;1111 个启动命令已拆为 100 个独立原生分片,全部完成 no-document/document/selection 三状态采样。首个 `PartDesign_Pad` 命令族已完成选择和原生成功 Task 工作流,下一项只采集无活动文档时的 disabled 状态;failure、cancel、recovery 与其他命令族仍保持开放。没有原生基线的功能不进入 exact 实现判断。
|
||||
对应 `EX-ORA-01/02`。当前隔离配置下有 1111 个工作台启动命令、19 个 source-only 命令和 2 个上下文延迟命令;1111 个启动命令已拆为 100 个独立原生分片,全部完成 no-document/document/selection 三状态采样。首个 `PartDesign_Pad` 命令族的 success、disabled、failure、cancel、recovery 五态工作流和 blocker 更新已全部完成;其他命令族及运行时对象/Property 的未知项仍保持开放。没有原生基线的功能不进入 exact 实现判断。
|
||||
|
||||
### P0-B:关闭跨特征拓扑命名
|
||||
|
||||
对应 `EX-KER-01`、`EX-TSN-04`。锁定 30-case corpus 已按 `9 Boolean + 11 PartDesign + 6 复合 Boolean + 4 dress-up` 逐案例执行原生属性编辑,30/30 都传播到最终 Shape,219/219 阶段几何恢复,657 条 before/edited/restored 阶段记录完成 fail-closed 对账;恢复状态再保存、重开、二次保存后的错误绑定、未解释关系和名称漂移均为零。FreeCAD 重算仍使 11 个 PartDesign 案例的 28 个 mutation 恢复阶段产生原生命名摘要演进。生产 Worker 五阶段链另有 5/5 几何编辑恢复,但顺序链只有 2/5 原生 builder,3/5 为通用 Shape 代理,rotate 缺少原生 mutation family,2/5 恢复用例的 5 个下游语义拓扑摘要发生变化,19 类生产操作的 361 个有序组合仅分类回放 4 个,因此门禁继续 fail-closed。
|
||||
对应 `EX-KER-01`、`EX-TSN-04`。锁定 30-case corpus 已按 `9 Boolean + 11 PartDesign + 6 复合 Boolean + 4 dress-up` 逐案例执行原生属性编辑,30/30 都传播到最终 Shape,219/219 阶段几何恢复,657 条 before/edited/restored 阶段记录完成 fail-closed 对账;恢复状态再保存、重开、二次保存后的错误绑定、未解释关系和名称漂移均为零。FreeCAD 重算使 11 个 PartDesign 案例的 28 个 mutation 恢复阶段产生原生命名摘要演进;其中 `partdesign-plain` 与 `partdesign-midplane` 的 Body/Pad 共 4 个阶段已用第二次独立原生复跑分类为允许演进,恢复几何与初值一致且演进命名在 save/reopen/resave 后稳定,剩余 9 个案例/24 个阶段待解释。生产 Worker 五阶段链另有 5/5 几何编辑恢复,但顺序链只有 2/5 原生 builder,3/5 为通用 Shape 代理,rotate 缺少原生 mutation family,2/5 恢复用例的 5 个下游语义拓扑摘要发生变化,19 类生产操作的 361 个有序组合仅分类回放 4 个,因此门禁继续 fail-closed。
|
||||
|
||||
### P0-C:关闭 App 文档语义
|
||||
|
||||
@@ -101,7 +101,7 @@ P1/P2 的 GUI 全量对标、其他工作台、代理模块和跨浏览器发布
|
||||
| --- | --- | --- | --- | --- |
|
||||
| M0 | 收口当前工作树 | `completed` | 将 TSN、Property、CAM/LinuxCNC 三组已有增量分别核对证据和边界,不再混入新功能 | 聚焦门禁、完整 `verify`、`git diff --check`、全部 JSON 解析通过;计划与报告无陈旧哈希 |
|
||||
| M1 | `EX-ORA-01` 运行时清册闭合 | `in_progress` | 对 352 个注册对象、1111 个启动 GUI command、19 个 source-only command、2 个 context-only command 和 GUI 工作流状态生成差异账本 | 每个候选均为 runtime-backed 或有机器可读排除原因;成功/禁用/失败/取消/恢复工作流未知项为零 |
|
||||
| M2 | `EX-TSN-04A` 漂移判定 | `ready-after-M0` | 逐项解释 11 个 PartDesign case 的 28 个恢复命名摘要演进,以及五阶段链的 5 个恢复拓扑变化 | 每个差异都有 FreeCAD 复跑证据并被判定为稳定语义、允许演进或实现缺陷;未知项为零,缺陷有回归测试 |
|
||||
| M2 | `EX-TSN-04A` 漂移判定 | `in_progress` | 逐项解释 11 个 PartDesign case 的 28 个恢复命名摘要演进,以及五阶段链的 5 个恢复拓扑变化 | 每个差异都有 FreeCAD 复跑证据并被判定为稳定语义、允许演进或实现缺陷;未知项为零,缺陷有回归测试 |
|
||||
| M3 | `EX-TSN-04B` 转换矩阵闭合 | `after-M2` | 将 19×19 的 361 个有序操作对按原生输入/输出类型分类;原生允许的组合使用真实 builder 回放,原生拒绝的组合保存失败 oracle | 361/361 已分类;可执行组合的 history/naming/mutation/resave 通过;不可执行组合的原生错误可复现;不再用通用 Shape 代理冒充 feature builder |
|
||||
| M4 | `EX-DOC-01` Property 批次 | `after-M1` | 先做高复用 App 类型与链接/列表类型,再处理 Material、File、PythonObject 等带安全或工作台边界的类型 | 每批均具备原生值/状态/editor oracle、Facade codec、FCStd reopen/resave、Undo/Redo 和 Chrome 证据;opaque 数量只按机器报告下降 |
|
||||
| M5 | `EX-DOC-02/03` 文档闭环 | `after-M3+M4` | observer 顺序、事务 abort、局部重算失败、Extension、FeaturePython、copy/clone/delete/relink | 原生与浏览器事件序列一致;失败不污染最后有效状态;资源归零;随后再推进 `EX-DOC-04` |
|
||||
@@ -113,18 +113,18 @@ M3 不要求把 FreeCAD 本身拒绝的组合强行实现为顺序特征链。
|
||||
|
||||
### 6.1 微任务队列
|
||||
|
||||
机器真值为 `config/freecad-active-work-queue.json`,由 `generate:freecad-active-work-queue` 从原生报告生成,并由 `check:freecad-active-work-queue` fail-closed 校验。当前共 487 个微任务:112 `completed`、1 `in_progress`、374 `pending`;`maxInProgress=1`,唯一下一任务是 `ORA-GUI-WF-002`。
|
||||
机器真值为 `config/freecad-active-work-queue.json`,由 `generate:freecad-active-work-queue` 从原生报告生成,并由 `check:freecad-active-work-queue` fail-closed 校验。当前共 487 个微任务:119 `completed`、1 `in_progress`、367 `pending`;`maxInProgress=1`,唯一下一任务是 `TSN-DRIFT-002`。
|
||||
|
||||
| 微里程碑 | 任务粒度 | 数量 | 状态 | 下一退出条件 |
|
||||
| --- | --- | ---: | --- | --- |
|
||||
| `ORA-GUI-BASELINE` | 1 个配置边界或 1 个 GUI 命令分片 | 106 | 106 completed | 已关闭:100/100 分片、1111/1111 命令状态、2 个上下文延迟命令均有证据 |
|
||||
| `ORA-GUI-WORKFLOWS` | 1 个命令族的 1 种工作流状态 | 7 | 2 completed / 1 in_progress / 4 pending | `PartDesign_Pad` 选择与成功 Task 已完成;当前只执行 `ORA-GUI-WF-002` disabled 状态 |
|
||||
| `TSN-RECOVERY-DRIFT` | 1 个原生 case 或 1 个生产 mutation | 13 | 13 pending | GUI workflow 七步关闭后,从 `partdesign-plain` 单 case 开始 |
|
||||
| `ORA-GUI-WORKFLOWS` | 1 个命令族的 1 种工作流状态 | 7 | 7 completed | `PartDesign_Pad` 五态原生工作流、聚焦断言和 exact blocker 更新已关闭 |
|
||||
| `TSN-RECOVERY-DRIFT` | 1 个原生 case 或 1 个生产 mutation | 13 | 2 completed / 1 in_progress / 10 pending | `partdesign-plain` 与 `partdesign-midplane` 已分类为允许演进;当前只解释 `partdesign-reverse` |
|
||||
| `TSN-ORDERED-PAIRS` | 1 个有序操作对 | 361 | 4 completed / 357 pending | 每次只分类并回放一个 `from->to`,不按特征族批量关闭 |
|
||||
|
||||
`ORA-GUI-WORKFLOWS` 严格按七步执行:选定命令族、成功、禁用、失败、取消、恢复、更新 blocker/门禁。一步只新增一种原生状态证据,前一步未通过时不启动后一步。
|
||||
`ORA-GUI-WORKFLOWS` 已按七步关闭:选定命令族、成功、禁用、失败、取消、恢复、更新 blocker/门禁。一步只新增一种原生状态证据,前一步未通过时不启动后一步。
|
||||
|
||||
`TSN-RECOVERY-DRIFT` 的 13 个独立任务按以下顺序执行:`partdesign-plain`、`partdesign-midplane`、`partdesign-reverse`、`partdesign-taper`、`partdesign-twoside`、`partdesign-pocket`、`partdesign-pocket-through`、`partdesign-pocket-midplane`、`partdesign-pocket-twoside`、`partdesign-pocket-taper`、`partdesign-pocket-up-to-face`、生产 `cut`、生产 `rotate`。每个任务只允许一种结论:稳定语义、允许演进或实现缺陷;不得以几何恢复代替命名解释。
|
||||
`TSN-RECOVERY-DRIFT` 的 13 个独立任务按以下顺序执行:`partdesign-plain`(已完成,允许演进)、`partdesign-midplane`(已完成,允许演进)、`partdesign-reverse`(当前)、`partdesign-taper`、`partdesign-twoside`、`partdesign-pocket`、`partdesign-pocket-through`、`partdesign-pocket-midplane`、`partdesign-pocket-twoside`、`partdesign-pocket-taper`、`partdesign-pocket-up-to-face`、生产 `cut`、生产 `rotate`。每个任务只允许一种结论:稳定语义、允许演进或实现缺陷;不得以几何恢复代替命名解释。分类账本为 `config/freecad-recovered-naming-classification.json`,其原生 harness 哈希、两次运行一致性和持久化稳定性由 `check:freecad-recovered-naming-classification` 校验。
|
||||
|
||||
100 个 GUI 分片分别对应 `ORA-GUI-SHARD-000..099`,每片覆盖排序命令全集中的 11 或 12 个命令。每片有独立报告、SHA-256、起止索引和退出条件;合并器要求 100 个区间连续、1111 个 ID 唯一且全集哈希一致。
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# FreeCAD Web 转换执行总计划
|
||||
|
||||
更新时间:2026-08-14
|
||||
更新时间:2026-08-15
|
||||
|
||||
## 1. 目标、口径与真值
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
- Oracle:352 个注册对象、348 个可实例化对象、4 个不可实例化对象、1111 个启动 GUI command、19 个 source-only command 和 2 个 context-only command 已分类;命令族的成功、禁用、失败、取消、恢复流程仍未穷尽。
|
||||
- Property:85 种运行时类型、5510 条记录中,22 种/4304 条为通用原生 codec,5 种/683 条为专用 codec,58 种/523 条仍为 opaque proxy。
|
||||
- Property status:15 类已观察状态均已进入类型化 Facade 行为;`LockDynamic` 和 `PartialTrigger` 已有原生事务证据,但完整 observer 与局部重算序列未关闭。
|
||||
- TSN:30/30 原生 mutation、219/219 几何阶段恢复通过;11 个 PartDesign case 的 28 个恢复命名摘要演进仍需逐 case 解释。
|
||||
- TSN:30/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.11:11 个 PartDesign case,逐 case 解释 28 个命名摘要演进。
|
||||
- M02.1-M02.11:11 个 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 均为 false;QAction 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` 的恢复命名阶段。退出条件仍是第二次原生复跑一致、恢复几何一致、持久化稳定,并且在稳定语义、允许演进、实现缺陷三者中得到唯一机器可读结论。
|
||||
|
||||
Reference in New Issue
Block a user