Files
FreeCADWasmDev/docs/current/MIGRATION_EXECUTION_RESET_20260911.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

94 lines
5.5 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 Web 移植执行纠偏
## 最新决定
2026-09-11 用户要求:**全部功能先打通,不需要验证,用户使用时自己验证。**
现已按此调整,不再以自动验收比例推动或阻塞当前移植阶段。
技术路线不变:已提供的 OCCT WASM 负责几何,FreeCAD WASM 负责文档/特征,
Three.js 显示,React 交互,OPFS 保存实际文件。桌面源码、已有模块、DXF C++
实现、编译目录和历史成果全部复用,不重新从零开发。
## 为什么进展慢
1. 执行目标混杂。功能接线、自动验收、旧失败对账同时争用串行主线。
已连接功能因指纹失效反复回来验收,不能等同于还没有移植。
2. 重验掩盖停滞。旧证据重新通过会清零模块的停滞计数,允许同一未完成
功能继续“局部修改、旧功能重验、局部修改”的循环。
3. 批次没有形成可交付功能。同一模块反复调整参数保护、结果描述和界面,
没有一次打通对应的当前文档、原生操作和界面调用。
4. 共享文件频繁变动。最近 100 个模型日志中,workbench-shell.tsx 修改
13 次,Part 适配器 12 次,TechDrawDesktopCommands.cpp 11 次。
共用文件变动又触发旧证据重新计算与验收。
5. 上下文要求不一致。原提示要求外层验收,压缩后的提示也恢复这个要求;
调度器限制源码读取后,模型仍反复发出被拒绝的命令。
6. 把过程指标当进度。进程正常、测试通过、回执刷新、路由数都不能分别
代表全部功能接通。先前“无空转”和历史验收高值不是可靠的当前结论。
## 耗时依据
使用项目已有计时工具生成报告,缓存窗口实际是 50 轮,不冒充 100 轮:
| 步骤 | 秒 | 占已计时阶段 |
| --- | ---: | ---: |
| 读取后的模型事件间隔 | 908.9 | 23.7% |
| 编辑阶段 | 734.0 | 19.1% |
| 前置业务验收 | 542.0 | 14.1% |
| 前置构建 | 508.2 | 13.2% |
| 编辑后的模型事件间隔 | 232.6 | 6.1% |
| 首次模型决策 | 193.5 | 5.0% |
模型事件间隔包括推理、服务、通信和客户端等待,不能都称为计算耗时。
该窗口未记录断流;不能继续把模型服务当作唯一主因。
数据在 `migration-throughput-audit-20260911.md/.json`。
## 全面范围
切换前一次清单快照为 1504 项:64 项当时证据有效,86 项已有可执行用例,
789 项有实现回执候选但缺业务用例,565 项仍需补齐或核实接线/实现。
这些是切换前的分层清单,不是当前剩余功能的工时估计;各功能复杂度不同。
32 个模块均有 WASM 产物,但产物存在不表示每个工作流都已接通。
完整逐模块清单保留在 `business-acceptance-plan.md/.json`,只作为已有成果
和缺口索引,不再作为自动验证任务队列。不删功能、不缩小分母、不清空失败。
按既有架构完成以下功能链;同目标的修改合并一次必要增量构建:
| 顺序 | 功能组 | 接通内容 |
| --- | --- | --- |
| 1 | 主工作区与文档 | 当前文档、树/属性、选择、事务、打开/保存、OPFS |
| 2 | Part / Sketcher / PartDesign | 已有原生几何、约束、特征及编辑入口 |
| 3 | Import / Draft / Mesh / MeshPart | 已有格式、DXF C++、STL/OCCT、草图与网格业务 |
| 4 | TechDraw / Assembly / BIM | 图纸、装配、建筑对象及对应任务/选择/文件入口 |
| 5 | Fem / CAM | 分析模型、结果、刀路和文件业务 |
| 6 | 其余模块 | Material、Measure、Points、Spreadsheet、Surface、Robot、ReverseEngineering 等全部既有清单 |
优先使用已经形成真实原生操作的实现;禁止为了路由数增加固定返回、空成功
或仅设置 status。遇到 GUI 依赖,把文档计算留在 WASM,把交互接到现有 React。
## 已落地的执行调整
- `execution-policy.json` 持久化 implementation-only-user-validation。
- planner 只选择功能实施、产品/格式接线、已报告故障修复,不再选择自动验收、
补测试或历史对账;旧验收批次会重新规划。
- pipeline 不再执行业务用例和验收 gate;运行问题修复发布后保持
fix_deployed_pending_use,等待用户使用,不伪造问题已验证解决。
- 直接验收入口也按策略跳过,防止旧回合调用它;历史用例和证据保留。
- 禁止模型回合编写/运行测试;原始和压缩提示都遵守同一用户策略。
- 定时优化关闭,避免每 30 分钟插入一次新的检查回合。
- 停滞计数不再被纯证据刷新清零;真实实现进展仍可继续。
- scheduler 和 watchdog 的停止条件改为完整范围的接线/构建与已报告故障
部署状态,不等待自动验收全绿。
- 状态工具把旧验收数标为 historicalAcceptanceNotSchedulingGate。
这些是调度行为改变,不是宣称全部功能已经完成。新指令生效后不再执行
自动回归或浏览器验证。编译依赖检查、编译、链接、资源同步属于交付产物
必需步骤,保留;仅相关输入改变时才重建受影响目标。
## 后续控制
每批只记录:复用路径、已接通功能、实际缺口、变更文件、编译/发布结果、
下一步。稳定文件不再读,旧证据不重验,共用接口不为单模块需求反复修改。
用户使用时发现问题,再按具体输入定位对应模块并修复,不转回全量验收循环。
主指标是当前路由、已发布实现回执和剩余连接缺口;用户验证状态单独记录。