Files
FreeCADWasmDev/docs/current/registration-and-read-budget-repair-20260912.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.5 KiB

Registration and Read Budget Repair

Policy: implement first, users validate during use. No automated tests or business acceptance were run. Native build and artifact publication only.

Root Causes and Changes

  1. BimRuntimeProbe.cpp has command-specific nameValue == "IFC_..." success branches after actual script execution and serialization. The registry's explicit-branch matcher omitted nameValue, although its boolean-alias matcher already allowed it. Removing duplicate markers did not fix that mismatch. Both explicit branch forms now recognize this existing identifier; an explicit marker and executable branch are still required. No blanket family registration or error-to-success replacement was added.
  2. The source-read event loop created a budget marker, but only rg and the source-search helper observed it. sed excerpts bypassed it: cycle 7955 recorded 14 reads against a soft budget of 4 and hard budget of 5. The existing per-command BASH_ENV now intercepts read-only sed after the budget is reached, returns an explicit error, and leaves editing commands and outer builds alone. Cycle 7958 actually returned the new message. No synthetic guard test was run. This is not a universal shell sandbox, nor proof of improved delivery rate.
  3. The declaration-only IFC shim was marked as a real backend and wrote an empty IFC DATA section. It now declares itself as a stub; its open/write/API methods raise dependency errors. Real installed packages still replace the shim through the existing import path. Do not confuse this safeguard with backend delivery.

Build and Handoff

Independent batch: bim-ifc-registration-implementation-batch.json. The active scheduler manifest was not replaced. Existing 81 direct link dependencies were reused; only the affected BIM target was rebuilt and published.

Step Seconds
Module registry 0.100
Capability registry 7.394
Build preflight 0.045
BIM incremental build 44.725
Artifact sync 7.077
Completion metadata, not runtime acceptance 0.895
Total pipeline 60.236

Receipt: bim-ifc-registration-implementation-pipeline.json. Four selected routes are registration-ready. IFC runtime functionality is still dependency-incomplete: real IfcOpenShell bindings, native provider/proxy support and associated data restoration need integration. Source findings and fingerprints are retained in native-semantic-decisions.json; local search results in provided-source-index.md.

Before the repair, the reported 20-cycle window spent 35.1% in post-read model intervals, 25.4% editing, 11.0% idle-stop and 5.4% building. Those intervals are not proof of a network timeout. This turn does not claim the model latency was fixed.

Next Implementation Strategy

  • Treat registration discovery, missing runtime dependencies, missing behavior and browser UI ownership as different problems, each with its own repair.
  • Reuse current source fingerprints and receipts. Do not move IFC markers again or repeatedly add the already existing real-package preference.
  • Do not treat a budget-rejected search as evidence of absent sources. Use the retained excerpts to edit; refresh missing task-specific source in the next packet.
  • Keep geometry in the provided OCCT/FreeCAD WASM. Do not substitute Assimp, frontend triangles or dummy IFC entities for the required native operations.
  • Continue other available module work while the precise native binding gap is unresolved. Route counts, compiled modules and semantic completion stay separate.