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
4.1 KiB
4.1 KiB
Part 包跨所有者接线:源码读取阻塞补漏
2026-09-23 本轮依据 owner-routing-blocker.md 接续。该记录明确指出两种不同阻塞:
- 已有依赖
web/src/partdesign-document-facade.ts、web/src/web-view-task.tsx被读取器当作不在模块范围拒绝。 - 已耗尽 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。
已定位调用链:下一轮直接按这些落点实现
project-shell.tsx:82已 import PartDesign facade,:61已 import WebViewTask。这两个被拒绝的文件都是正式主工作区直接依赖。project-shell.tsx:205remoteRequest 发送freecad-project-native-request;workbench-shell.tsx:617forward 验证来源并按保留 owner 构造partdesign.document/part.documentpayload;不是把对象迁入另一个文档。partdesign-document-facade.ts:1是 DesignAction 与请求/结果协议;partdesign.worker.ts:6分派它,加载FreeCADWebPartDesignRuntimeProbe。独立partdesign-save.worker.ts不是普通文档命令所有者,不必继续读取它。PartDesignRuntimeProbe.cpp:1345将partdesign.document发往PartDesignDocumentWorkflow.cpp:661::dispatchPartDesignDocument。sketcherCommand 必须逐层接通动作合同和真实原生消费者,不能只给 action map 添字符串。module-router.ts:284对登记为 Assembly modeling 的文档改派assembly.worker.ts,同名 PartDesign 命令不代表相同 WASM 所有者。沿实际消费者判断所需构建目标,避免以字段名代替支持声明。- 框选:
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 消费者 | 已定位待接 | 继续 |