3.3 KiB
Sketcher batch checkpoint — 2026-09-17
Batch: 6e8179a5d54ae062a880f1a3. Packet: docs/current/module-implementation-packet.json.
Completed first-error repair
- In
freecad-source/src/WebAssembly/FreeCADCoreProbe/SketcherDesktopCommands.cpp,executeNewSketchnow usesApp.listDocuments().get(document_id)before creating a missing document. The previousApp.getDocument(document_id)raisedUnknown documentinstead of reaching the creation branch. - In
tools/sketcher-business-cases.mjs, the NewSketch case creates a second sketch in the same document, checks its identity, then edits the first sketch to prove document reuse preserved it. Supplemental results are retained in the case evidence. - Built only
FreeCADWebSketcherProbewithcmake --build freecad-source/build-web/configure --target FreeCADWebSketcherProbe -j2; build succeeded. Synchronized its JS, WASM and worker JS from the build bin directory intoweb/public/kernel. - The first acceptance run before synchronization still used the old runtime and failed with
Unknown document. After synchronization, the isolated NewSketch case passed, followed by the three affected existing desktop cases.
Attributable acceptance evidence
- NewSketch:
docs/current/business-evidence/d17109fd26ed59bde81d5aab-20260917T151944936543.json; runner exit 0, passed 1, 1.635 seconds. - EditSketch, MapSketch, RenderingOrder:
docs/current/business-evidence/656cca41bd592c8538d3ec0d-20260917T152014913496.json; runner exit 0, passed 3, 1.654 seconds. - These results cover the repaired prerequisite only. They do not establish completion of this batch's four selected commands.
Remaining boundaries and next action
The selected records remain unimplemented/unproven in this continuation: Sketcher_ReorientSketch, Sketcher_Snap, Sketcher_StopOperation, Sketcher_ValidateSketch. No selected coverage tags or passing statuses were added, and no contract, verifier, proof requirements or acceptance machinery was modified.
Continue with the selected native source anchors in freecad-source/src/Mod/Sketcher/Gui/Command.cpp: ReorientSketch 449, Snap 1545, StopOperation 415, ValidateSketch 844. StopOperation's supplied source calls the active sketch view provider's purgeHandler; this needs actual browser operation cancellation semantics, not a success flag. Inspect the native dispatch and module adapter anchors before adding handlers. Preserve all original and supplemental requirements, and wire each browser behavior through the existing Sketcher adapter and mounted workbench shell. The shared dispatcher has no demonstrated defect from this repair.
Add executable native/browser semantic assertions for the selected behaviors, then use the acceptance runner for proof. Do not claim coverage from protocol shape alone. Reuse the existing WASM geometry backend. Keep the IFC semantic export contract intact; no IFC code was involved in this repair. No full-parity/API gates, deployment, push or external messages.
This turn consumed four supplemental source windows (DesktopCommands lines 1–100 and 100–199, business cases 140–239, acceptance runner 1–100), plus the bounded packet metadata summary. Continue source inspection in the next authorized turn rather than bypassing the window limit. The reader reported remaining packet capacity of 43 windows after the last read.