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 解析与发布产物一致性复核再次通过。
|
||||
|
||||
Reference in New Issue
Block a user