3.2 KiB
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.