3.1 KiB
BIM Executable URL Unblock
Two commands implemented and published: BIM_Help and BIM_Examples. Formal receipt: bim-external-url-pipeline.json. No tests, browser checks, acceptance or benchmarks ran. This is not complete BIM or project parity.
Fixed Causes
- The existing BIMDesktopCommandRegistry.h is an executable dispatch table, but capability discovery only recognized older marked command branches. It repeatedly queued these completed source URL implementations as native gaps. Discovery now recognizes just the two audited ExternalUrl entries, checks the registry consumer, parses their embedded Python scripts with AST, and requires calls to the supplied desktop getUrl methods plus mounted UI. Document/geometry rows are not promoted by table membership.
- Help and Examples both emitted a shared freecad-bim-help event. Help retained the last event URL even when it came from Examples. Both mounted links now use the matching current command response: canonical ID, name, exposed status, result command and destination are checked. No stale event state is retained.
- BIMDesktopCommands.h still defined EmptyTrash, Extrude and Fuse scripts also defined by the newer BIMSolidCommands.h. Removed the superseded definitions; the executable registry continues to use the newer implementation. Existing files and native business implementations were retained, not rewritten.
- Implementation packets followed only the first level of local includes, so they contained the registry but omitted its actual script helpers. The same source collector now follows the reachable local-header closure with a seen set. It never leaves FreeCADCoreProbe or follows system includes; excerpt budgets remain unchanged. The packet includes all six relevant BIM headers.
Measured Steps
| Step | Seconds |
|---|---|
| Initial capability generation | 8.266 |
| Initial implementation packet | 0.656 |
| Pipeline module registry | 0.102 |
| Pipeline capability registry, cached | 0.082 |
| Pipeline link preflight | 0.043 |
| BIM incremental compile/link | 37.735 |
| Artifact synchronization | 6.816 |
| Deferred business metadata | 0.961 |
| Pipeline total | 45.739 |
| Packet refresh with transitive headers | 0.731 |
| Frontend build | 8.591 |
| Public asset sync inside frontend build | 7.120 |
Both native and frontend builds exited 0. Existing OCCT/FreeCAD libraries were reused. No new kernel, Worker or modeling algorithm was introduced. Frontend asset sync remains most of this build's elapsed time; these are build timings, not application performance benchmarks.
Continuation
Reuse the URL table, compiled BIM artifact and current response links. Do not send these two commands back through speculative native-marker repair. Read the newly included script headers directly for remaining document commands.
At route generation the inventory was 1282/1451 routed, 169 requiring implementation. These are route counts, not acceptance or verified parity. Provider backoff observed at the start is independent of these local defects; this change does not establish restored model service or global throughput.