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
37 lines
4.1 KiB
Markdown
37 lines
4.1 KiB
Markdown
# 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 消费者 | 已定位待接 | 继续
|