Files
wangdequan 789e18ca3e
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
CodeQL Advanced (c-cpp) / Analyze (c-cpp) (push) Has been cancelled
Push Crowdin Translations / update-crowdin (push) Has been cancelled
Fetch Crowdin Translations / update-crowdin (push) Has been cancelled
Build Release / upload_src (push) Has been cancelled
Build Release / build (10.13, macos-15-intel, osx-64) (push) Has been cancelled
Build Release / build (11.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (15.0, macos-latest, osx-arm64) (push) Has been cancelled
Build Release / build (ubuntu-22.04, linux-64) (push) Has been cancelled
Build Release / build (ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Build Release / build (windows-latest, win-64) (push) Has been cancelled
Monthly issue metrics / issue metrics (push) Has been cancelled
Continue FreeCAD Web UI parity repairs
2026-09-23 14:03:56 +08:00

37 lines
4.1 KiB
Markdown
Raw Permalink 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.
# Part 包跨所有者接线:源码读取阻塞补漏
2026-09-23 本轮依据 `owner-routing-blocker.md` 接续。该记录明确指出两种不同阻塞:
1. 已有依赖 `web/src/partdesign-document-facade.ts`、`web/src/web-view-task.tsx` 被读取器当作不在模块范围拒绝。
2. 已耗尽 16 个源码窗口/48000 字节后继续请求被拒绝。
第一项是任务包依赖/工具策略缺口;第二项应保存精确接续、进入新有界回合,不能取消预算或循环同一请求。
## 本轮源码修改
- `tools/read_implementation_source.py`:已确认功能包可读取其命名源码直接相对 import/from/dynamic import 引用的前端依赖。仅追踪一跳,`.js` 按本仓库惯例映射 `.ts/.tsx`;候选限于 `web/src`,锚点最大 512 KiB,不递归扫描。原窗口数、总字节、每窗上限、同窗指纹去重和调度器预算标记保留。
- `tools/prepare_implementation_business_batch.py`:复用包说明同步直接 import 能力,预算用尽后保存下一文件/行,不重读已完成范围。
- 原 Part key 的 `sourceAnchors` 补入以下确切依赖,使下一包既可直接读取又保留跨所有者接续边界。没有修改当前正在执行的 ReverseEngineering 查缺包,也没有另启调度器或手工重建当前 packet。
## 已定位调用链:下一轮直接按这些落点实现
1. `project-shell.tsx:82` 已 import PartDesign facade,`:61` 已 import WebViewTask。这两个被拒绝的文件都是正式主工作区直接依赖。
2. `project-shell.tsx:205` remoteRequest 发送 `freecad-project-native-request`;`workbench-shell.tsx:617` forward 验证来源并按保留 owner 构造 `partdesign.document` / `part.document` payload;不是把对象迁入另一个文档。
3. `partdesign-document-facade.ts:1` 是 DesignAction 与请求/结果协议;`partdesign.worker.ts:6` 分派它,加载 `FreeCADWebPartDesignRuntimeProbe`。独立 `partdesign-save.worker.ts` 不是普通文档命令所有者,不必继续读取它。
4. `PartDesignRuntimeProbe.cpp:1345` 将 `partdesign.document` 发往 `PartDesignDocumentWorkflow.cpp:661::dispatchPartDesignDocument`。sketcherCommand 必须逐层接通动作合同和真实原生消费者,不能只给 action map 添字符串。
5. `module-router.ts:284` 对登记为 Assembly modeling 的文档改派 `assembly.worker.ts`,同名 PartDesign 命令不代表相同 WASM 所有者。沿实际消费者判断所需构建目标,避免以字段名代替支持声明。
6. 框选:`web-view-task.tsx:23` 接收 runtimeOwner;`part-view-facade.ts` 的公开 ViewOwner 当前只有 PartBox/DocumentProbe,协议检查也仅接受这两个。扩展所有者必须追到 native endpoint;不能将 PartDesign 文档标成 DocumentProbe 读取另一份同名文档。
## 复用与真实剩余
New Sketch 的 Part DocumentProbe 原生路由、已完成链接、创建/关闭控件,以及 Appearance per Face 的 View 入口已由此前记录交付。复用 `sketch-delivery.md`、`owner-routing-blocker.md` 和已有日志,不重复构建/实现。
原 Part 包继续 open,实际剩余是其他文档所有者 sketch 分派、跨所有者框选和未追溯的快捷键元数据。本轮解决读取阻塞并提供调用链,不宣称这些业务接线已经完成。
无需编译:本轮仅改 Python 执行工具与接续元数据;脚本由后续调用加载,无需重启后台。未执行测试、语法检查、业务验证、浏览器、截图或构建,无本轮未结束进程。原服务在第 10791 轮继续 ReverseEngineering 源码查缺。
处理模块 | 对标项 | 源码落点 | 路由入口 | OCCT 边界 | 状态 | 结论
--- | --- | --- | --- | --- | --- | ---
Part 接续工具 | 跨工作台精确依赖读取 | read_implementation_source.py;prepare_implementation_business_batch.py | 原单一调度器读取工具 | 不改模型算法 | 已补漏(未验证) | 保留
Part 跨所有者 UI | 草图/框选的真实文档调用链 | project-shell → facade/worker → native owner | 已保存精确落点 | 继续复用实际 WASM 消费者 | 已定位待接 | 继续