5.6 KiB
Sketcher creation continuation checkpoint
Batch: 908f2b80b76401d40be32997.
Selected records: Sketcher:desktop:Sketcher_CompExternal,
Sketcher:desktop:Sketcher_CompLine, Sketcher:desktop:Sketcher_CompSlot,
Sketcher:desktop:Sketcher_Create3PointArc.
Implemented and verified in this continuation
Wired standalone Sketcher_Create3PointArc into the existing retained-document
creation handler in SketcherDesktopCommands.cpp, the live-command routing and
exposure lists in SketcherProbe.cpp, and the module-specific creation registry in
web/src/sketcher-desktop-adapter.ts. The native handler uses its existing
three-point arc construction; the command exposes only Create3PointArc as its
member. Existing mounted interaction controls dispatch the standalone identity.
No shared dispatcher or acceptance contract was changed.
Added the standalone fixture to tools/sketcher-business-cases.mjs, reusing its
native and mounted-browser creation scenarios. Strengthened three-point arc
assertions to check radius 10, center at the origin, length 10*pi, the input start
and end, and the middle input point in the native curve samples. The scenario
also exercises invalid input, geometry retention, Stop Operation, rejected late
apply, and switching to an independent sketch and back. This standalone fixture
uses normal geometry only; it does not establish construction=true behavior or
translated/rotated/general three-point cases.
Focused build succeeded:
cmake --build freecad-source/build-web/configure --target FreeCADWebSketcherProbe --parallel 2
Copied the resulting .js, .wasm, and .worker.js from the configured bin
directory into web/public/kernel. Build warnings included the existing unused
sketch variable, ignored compilation-time PTHREAD_POOL_SIZE, and pthreads with
memory growth. Scoped git diff --check exited 0; some implementation files are
untracked, so this alone is not patch validation.
Attributable acceptance command:
FREECAD_BROWSER_EXECUTABLE=/usr/bin/google-chrome python3 tools/run_business_acceptance.py --module Sketcher --ids Sketcher:desktop:Sketcher_Create3PointArc --reuse
Result: passed 1, no failures, no remaining IDs within that invocation,
executedCount: 1, reused: false, 7.673 seconds, exit 0.
Evidence: docs/current/business-evidence/d5caf5e491983902764d3755-20260917T234924430933.json.
Evidence contains separate native and mounted-browser cases and screenshots at
1280px and 390px. Native evidence reports load 437.263 ms and native 10.552 ms.
The 390px screenshot was inspected: the diagnostic result pane obscures much of
the task. Browser pass is not proof of usable mobile layout.
Remaining work and next action
- CompExternal, CompLine and CompSlot remain unimplemented in the current creation
registries and have no newly added selected semantic cases. Read their supplied
desktop anchors in
src/Mod/Sketcher/Gui/CommandCreateGeo.cppat 1783, 138 and 1170, respectively; inspect the associated handlers as needed before choosing native behavior. Reuse existing native line and creation owners, but preserve all group members, external-reference semantics and native constraints. - Complete the primary project-shell/current-document workflow using the existing
native workspace, render bridge, selection and OPFS store. The passing arc case
uses
workbench.html?module=Sketcherand existing mounted controls; it does not establish project-shell integration, viewport-driven input or usable accept/ cancel lifecycle. The curve form still requests JSON arrays. Replace that flow with usable point controls and address the diagnostic-pane obstruction. - Extend existing FCStd save/reopen to these actual output documents and assert their curves, constraints, construction flags and external-reference semantics after reopening. Editor re-entry and the unrelated line persistence case are insufficient. Add broader three-point arc orientation/placement and construction cases before claiming those semantics.
- The packet anchor at line 275 shows the Arc group's membership, including the standalone command. It does not contain the standalone desktop handler itself. Inspect that handler in a future bounded source window for remaining parity details. Current implementation reuses the previously completed native arc owner.
- Preserve earlier checkpoints, especially
docs/current/sketcher-creation-business-checkpoint.mdanddocs/current/sketcher-grid-leave-merge-mirror-checkpoint.md, and the packet's remaining rectangle/polygon/trim/split/extend verification boundaries. No unchanged passing group was replayed here. Reuse attributable evidence while its implementation inputs remain unchanged.
Four supplemental source windows were used: adapter lines 1-100, native desktop owner 325-424, business cases 170-269, desktop source 275-334. The packet metadata summary was also read. Further missing implementation anchors need the next continuation's source budget. Initial unscoped git/search commands were rejected by the scheduler; they changed no files. Subsequent searches used exact paths.
All original and supplemental requirements remain active. No contract, verifier,
proof-area requirements, acceptance machinery or covers tags were edited; statuses
were produced only by the acceptance runner. IFC semantic export must still meet
docs/current/IFC_SEMANTIC_EXPORT_CONTRACT.md; proxy geometry remains insufficient.
No IFC completion is claimed. No full-parity/API gates, deployment, pushes or
messages to others were performed. Build and acceptance processes have exited.