4.5 KiB
Sketcher command constraints checkpoint
Batch: f32d97da1a812097228604a7.
Selected: Sketcher_ConstrainSymmetric, Sketcher_ConstrainTangent, Sketcher_ConstrainVertical, Sketcher_Dimension.
Changes
- Routed direct
Sketcher_Dimensionthrough the Sketcher adapter, the native probe's retained-document dispatch, andexecuteConstraintTools. The existing mounted constraint panel recognizes Dimension and supplies geometry, numeric value, and driving/reference mode. The common dispatcher and acceptance machinery were not changed. - Added executable native and mounted browser Dimension cases. They assert solved line length, circle diameter, reference diameter without geometry mutation, native datum editing, invalid/conflicting input rejection, retained state and independent-document behavior. Browser cases use the mounted controls and capture desktop/mobile screenshots.
- Kept all symmetry geometry assertions, including distinct reflected points. The original underconstrained fixture allowed the solver to coalesce the selected points. Both fixtures now block the first line and symmetry axis before applying Symmetric, and additionally assert those reference geometries remain unchanged. This makes the case prove nondegenerate reflection across a fixed axis.
- Existing native/browser Tangent and Vertical cases passed without implementation changes.
Build and verification
Focused build completed: cmake --build freecad-source/build-web/configure --target FreeCADWebSketcherProbe -j2.
Synced FreeCADWebSketcherProbe.js and .wasm from that build's bin to web/public/kernel/.
git diff --check passed for the four edited source/case files.
Acceptance used FREECAD_BROWSER_EXECUTABLE=/usr/bin/google-chrome with tools/run_business_acceptance.py; the bundled Playwright browser is not required.
- Symmetric native/browser passed:
docs/current/business-evidence/f751dd96774b8d915d16ad8b-20260917T202007888036.json(7.466 seconds). This predates the final Dimension build and case edits; retain as historical evidence only. - Dimension native/browser passed on final build:
docs/current/business-evidence/0e1028bd987004b19695ebbe-20260917T202414257515.json(8.015 seconds). - Tangent and Vertical native/browser passed on final build:
docs/current/business-evidence/edf3467c8f731b3f493244be-20260917T202449831226.json(10.521 seconds).
The attempted affected-group reuse returned previous_validation_deferred, executed zero cases, and named Symmetric: “User paused repeat validation; select only newly completed gaps. Historical proof is not promoted to current acceptance.” The subsequent run selected only Tangent and Vertical. Do not bypass that restriction or manually promote historical Symmetric proof. No passing status was edited.
Resolved first errors
- Symmetric fixture admitted coincident endpoints: resolved by fixed reference geometry, preserving and strengthening semantic assertions.
- Direct Dimension fell through the native probe to a legacy generated Python handler (
unexpected character after line continuation character): resolved by routing it to the maintained retained-document handler. The legacy fallback itself was not changed.
Remaining boundaries and continuation
- Current attributable proof exists for Dimension, Tangent and Vertical. Symmetric's repeat/current proof remains deferred by the runner, although its native/browser cases passed earlier in this turn. Preserve that distinction when continuing; do not rerun it while the pause applies.
- Dimension proof covers automatic single-line length and circle diameter, driving/reference behavior, datum editing, and rejected-input retention. The existing arc-radius branch was not exercised here. Desktop cursor-dependent mode cycling, vertex combinations, mixed geometry, and multi-element automatic inference were not established by these cases and must not be claimed as full desktop parity.
- Symmetric proof covers two selected endpoints reflected across a fixed line. Tangent proof covers line/circle tangency; Vertical proves solved vertical line geometry. Other desktop selection variants remain outside this evidence.
- Preserve all original and supplemental requirements, including the IFC semantic export contract. No IFC work, contract/verifier/proof-area edits, full-parity/API gates, deployments, pushes, or external messages were performed.
- The requested checkpoint is ready for automatic continuation. Respect the deferred repeat-validation boundary and use the next authorized gap rather than replaying unchanged passed cases.