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
- BimRuntimeProbe.cpp has command-specific
nameValue == "IFC_..."success branches after actual script execution and serialization. The registry's explicit-branch matcher omittednameValue, 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. - The source-read event loop created a budget marker, but only rg and the
source-search helper observed it.
sedexcerpts 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. - 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.