Files
FreeCADWasmDev/docs/current/sketcher-creation-business-checkpoint.md

6.3 KiB

Sketcher creation business checkpoint

Batch: 36b7b911f13e4278680ef0a5. Selected IDs: Sketcher:desktop:Sketcher_CarbonCopy, Sketcher:desktop:Sketcher_CompCreateArc, Sketcher:desktop:Sketcher_CompCreateBSpline, Sketcher:desktop:Sketcher_CompCreateConic.

Change in this continuation

The retained failure was a browser timeout locating the exact Curve points label in the mounted Sketch drawing task. Added explicit aria-label="Curve points" and aria-label="Curve parameters" to the existing textarea/input in web/src/sketcher-interaction-task.tsx. This stabilizes their accessible names without changing command payloads or native geometry behavior. The precise browser/React mechanism behind the prior implicit-label mismatch was not separately instrumented; the previously failing complete Arc case now passes with these names.

Reused the existing native handlers, adapter/dispatcher integration, mounted creation task, executable business cases and supplied WASM. No native rebuild or runtime synchronization was needed for this UI-only change. No case assertions or acceptance machinery were changed in this continuation.

Attributable acceptance

Executed the isolated previously failing case first:

FREECAD_BROWSER_EXECUTABLE=/usr/bin/google-chrome python3 tools/run_business_acceptance.py --module Sketcher --ids Sketcher:desktop:Sketcher_CompCreateArc --reuse

Runner: 1 passed, 12.812 seconds, no failures or remaining selected IDs, executedCount: 1, reused: false. Evidence: docs/current/business-evidence/a08d0221fa82a1969444060c-20260917T223453987089.json.

Then executed the other affected groups:

FREECAD_BROWSER_EXECUTABLE=/usr/bin/google-chrome python3 tools/run_business_acceptance.py --module Sketcher --ids Sketcher:desktop:Sketcher_CarbonCopy Sketcher:desktop:Sketcher_CompCreateBSpline Sketcher:desktop:Sketcher_CompCreateConic --reuse

Runner: 3 passed, 27.586 seconds, no failures or remaining selected IDs, executedCount: 3, reused: false. Evidence: docs/current/business-evidence/00e22f4b96c8ae8c494f9d12-20260917T223532980806.json.

All four selected records now have successful native and mounted-browser cases. Existing assertions cover:

  • Five Arc members; four Conic members; four B-spline members; native curve types, construction state, counts, lengths and 17 samples. Circular modes assert radii/centers or analytic lengths/endpoints; ellipse modes assert radii; splines assert degree/periodicity, control poles for non-interpolated modes, and open endpoints.
  • Carbon Copy geometry and Radius constraint copying; expression linkage to source constraints; radius propagation from 5 to 7 after changing the source dimension; an additional copy marked construction.
  • Invalid inputs, retained geometry after rejected curve operations, Stop Operation preserving committed geometry, rejection of apply after stop, and switching away to an independent sketch and back.
  • Actual mounted creation controls used to apply each curve/copy. Browser screenshots are referenced by the evidence for widths 1280 and 390.

Scoped git diff --check passed. The 390px Arc screenshot was inspected: a large diagnostic result pane obscures much of the drawing task in the viewport. Screenshot generation and control existence therefore do not establish usable mobile layout.

Preserved requirements and next continuation

These results establish the existing business-case scope, not complete desktop primary-UI delivery. Do not mark broader requirements complete based on these results.

  1. Browser scenarios mount workbench.html?module=Sketcher and use the command/payload interface to create/edit sketches and start groups. Curve/copy application uses mounted controls. Complete and verify the integrated project-shell current-document workflow, real selection, group launch and task accept/cancel using existing native owners and render bridge.
  2. The mounted curve form still asks users for JSON arrays. Replace this implementation-oriented flow with usable point/parameter controls and/or existing viewport interaction, preserving all native semantics, validation and construction options. Address the small-viewport diagnostic-pane obstruction and verify actual control visibility/layout.
  3. The selected cases retain documents and reopen the sketch editor, but do not save/reopen these output documents as FCStd. Extend the completed persistence workflow to assert the selected curves, construction flags, Carbon Copy expressions and source-driven dimension updates after FCStd reopen. The unrelated line persistence fixture is insufficient.
  4. Hyperbola/parabola cases currently establish curve type, nontrivial length, samples and retained state, but do not assert their analytic equations or trim endpoints. Interpolated splines do not yet assert passage through every input point. Strengthen these semantic assertions before claiming that broader proof. Add translated/rotated curve inputs and additional Carbon Copy placement/selection cases as required by desktop semantics.
  5. Preserve docs/current/sketcher-grid-leave-merge-mirror-checkpoint.md and its remaining boundaries, including grid-spacing preferences, primary-UI selection, FCStd persistence and broader Merge/Mirror semantics. This batch does not resolve those items.
  6. Acceptance declarations may retain historical coverage metadata; leave them and all passing statuses under runner ownership. No contract, verifier, proof-area requirement, acceptance runner or covers tag was edited. Do not modify them to produce a passing outcome.
  7. Preserve every original/supplemental requirement, including docs/current/IFC_SEMANTIC_EXPORT_CONTRACT.md: IFC semantic export still requires actual semantic proof, never proxy geometry. No IFC work or claim was made here.

Source inspection used four supplemental source windows (plus the bounded packet metadata summary). Further patch-anchor inspection belongs in the next continuation under its source-window budget. An initial unscoped git-status/search attempt was rejected by the scheduler and produced no repository changes; subsequent inspection used permitted bounded reads.

No full-parity/API gates, deployment, push, or messages to others were performed. All test processes have exited. Reuse the evidence above while its implementation inputs remain unchanged; isolate the next changed failure instead of replaying passing groups for timestamps.