Files
FreeCADWasmDev/docs/current/web-commanddoc-bd25920b6a473b85add95db6-checkpoint.md

58 lines
3.2 KiB
Markdown

# CommandDoc continuation checkpoint
Batch `bd25920b6a473b85add95db6`, 2026-09-16.
Selected: Alignment, Edit, Expressions, Print.
## Current implementation
Expressions now has a native C++ handler in `NativeDocumentView.h`, reached
through the existing Web adapter, Part view route and persistent document owner.
It copies selected objects, the active document or all documents from native
`PropertyExpressionContainer` values, preserving desktop `##@@` headers,
persistent expression strings and comment escaping. Paste resolves native
containers, parses all expressions before mutation, shares transaction IDs
across documents, sets native expressions, recomputes and commits. Parse errors
leave documents unchanged; unresolved targets report warnings like desktop.
Identical expressions do not open transactions. Frozen objects reject paste.
The existing mounted CommandDoc task now has scope selection, copy, clipboard
read, editable clipboard text, paste and cancel. The adapter writes copied text
to the browser clipboard; denied access is reported alongside available text.
The response contract validates expression results. No shared dispatcher or
shell edit was needed. `tools/web-business-cases.mjs` contains executable native
and browser assertions for clipboard scopes, multi-document mutation, comments,
dependent OCCT solids, undo/redo, no-op paste, parse errors and cancellation.
## Verification in progress
- Incremental PartBox and DocumentProbe build completed successfully.
- TypeScript, case syntax, scoped diff whitespace and static geometry boundary
checks passed. Static ownership checks do not prove all geometry ownership.
- Public artifact sync completed: 6 copied, 98 skipped.
- Frontend build and isolated acceptance result pending at this checkpoint.
No acceptance status has been manually changed.
## Preserved boundaries
Continue the original and supplemental requirements recorded in
`web-commanddoc-833151cee540ba6d377cfc4b-checkpoint.md` and its predecessors.
Placement's prior isolated pass is retained, including its explicit limits:
rotation center, live preview, hierarchy/link semantics and provider constraints
are still open and are not covered by the absolute/incremental subset.
Edit's existing acceptance first error is `No module named 'FreeCADGui'`.
Do not repeat it unchanged or replace native edit semantics with metadata.
A functional edit provider needs actual native mutation, commit/cancel and
provider-specific dispatch. Alignment still explicitly rejects requests pending
its manual alignment task and native placement application; desktop source uses
two geometric objects, fixed/moving groups, point correspondences, navigation
and accept/cancel. Print still needs the active view print host and actual
printable content, cancellation and document-preservation evidence.
All four selected commands are not claimed complete as a batch. Keep all original
and supplemental requirements, including the unchanged IFC semantic export
contract and proof requirements. No IFC rerun, proxy replacement, full-parity/API
gate, deployment, push, external message, verifier or acceptance machinery change
was performed. Initial unscoped Git/search rejections were diagnostic scope
rejections, not CAD business failures.