Files
FreeCADWasmDev/docs/current/routing-and-stall-repair-20260915.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

3.7 KiB

Routing and unattended stall repair

Corrections

  • Removed unconditional BIM/Link route fallbacks. Their route property was not the generated contract's command property; BIM also used the wrong direct-command payload. The generator now rejects missing endpoints/workers and preserves the selected endpoint instead of replacing it with a module's first family endpoint.
  • BIM commands with an executable script table, matching adapter and mounted UI use the existing native family envelope. Seven previously counted BIM entries remain pending where this connection is not established; historical registration-only completion claims are superseded.
  • The five existing Link operations use part.viewCommand, a matching document-view envelope and command-specific result handling. Std_LinkMakeGroup is now accepted by the native document bridge. Std_LinkMakeRelative, Std_LinkReplace and Std_LinkUnlink are pending again: their earlier unconditional registration did not implement them.
  • Fixed Dock Overlay's object catalog being called as an array (.includes). Registration recognizes the mounted host with JSX props and traces its dedicated Worker, facade and native export. All ten overlay entries have an implementation pipeline receipt.
  • Desktop CommandTest.cpp makes Std_Test1 through Std_Test6 development no-ops. Test 1 has no document prerequisite; 2 through 6 require a document. The Web adapter preserves those semantics using the existing read-only native document path. Removed their incorrect Test-suite routing. These are not six new CAD algorithms. Std_TestCmdFuncs is different and remains pending.
  • Test routing now has one JSON catalog, not a second array that the generator ignores.

Scheduling

  • A file edit without a new route/receipt no longer resets no-progress counters or updates lastProgressAt.
  • Two ineffective feature attempts defer those records; they do not cool the whole module and block unrelated work. Existing provider backoff and failure history are retained.
  • The compact packet includes the last three ineffective attempts and explicit endpoint/schema/runtime repair guidance. The registry generator and new adapters are named support files; document-view batches choose the actual Part owner for builds.
  • Scheduler implementation: implementation-only-outcome-based-recovery-v27.

Build Receipts and Timing

Only implementation/build/static routing work was performed; no business, browser or regression tests were run.

Step Recorded time Result
Frontend build 7.81 s successful
Link pipeline 8.859 s 4 ready; incremental build step 0.200 s, asset sync 7.367 s
Source no-op pipeline 10.363 s 6 ready; native content-hash/Ninja cache hit, registry generation 8.885 s
Dock pipeline 16.066 s 10 ready; native build step 14.244 s

Both PartBox and DocumentProbe were incrementally compiled/linked successfully for the native bridge change before these pipelines. An initial build invocation failed because EM_CONFIG was relative to the wrong working directory; the absolute existing configuration fixed it. No dependency rebuild or alternative geometry kernel was introduced.

Snapshot after correction: 1401/1452 registered routes, 51 pending (7 BIM, 44 Web), zero null executable endpoints. This is implementation registration, not user acceptance or a proof that all remaining runtime issues are resolved.

Receipts: routing-link-repair-20260915-pipeline.json, source-test-routing-pipeline-20260915.json, dock-routing-pipeline-20260915.json. Older BIM/Link registration notes must not override the corrected registry. Continue the real pending features using local sources and existing artifacts; do not reinstate unconditional fallbacks or unrelated Test-suite aliases.