6.8 KiB
Web command document batch checkpoint
Date: 2026-09-16. Batch: bfb9b00801ae8cf4a1c0457b.
Selected commands: Web:desktop:Std_ProjectInfo, Web:desktop:Std_Transform, Web:desktop:Std_TransformManip.
Implemented This Turn
Corrected the Web-module activation checks in web/src/web-desktop-adapter.ts:1058 for Std_Transform:
- Reject a request with an active task using the existing
active_taskfailure convention before dispatching native work. - Remove the unconditional nonempty-selection precondition for this command. Desktop
StdCmdTransform::isActive()atfreecad-source/src/Gui/CommandDoc.cpp:1720checks only whether a task dialog is already active. Activation opensGui::Dialog::TaskTransform.
This is an activation correction only. It does not implement TaskTransform or establish successful native transformation. Std_TransformManip retains its existing selection requirement; its native eligibility additionally requires exactly one GeoFeature that is not frozen, and activation resets existing edit mode and enters the ViewProvider Transform mode (CommandDoc.cpp:1799). Do not equate that behavior with a placement-only command.
Only the Web adapter and this checkpoint were manually edited. The adapter and existing case script are untracked in this worktree, so an empty scoped git diff does not mean no changes. Existing user changes were retained.
Build And Acceptance
npm --prefix web run build exited 0. Its standard build performed the geometry-boundary check, existing index/resource synchronization, TypeScript checking and Vite build. Geometry findings were empty; its report explicitly does not prove a single runtime. Existing dynamic-import and chunk-size warnings remain. No native sources changed and no native target was rebuilt.
Official runner command:
python3 tools/run_business_acceptance.py --module Web --ids Web:desktop:Std_Transform --reuse
Result: exit 1, status=acceptance_incomplete, passed=0, executedCount=1, reused=false, totalSeconds=1.865. Remaining: Web:desktop:Std_Transform. Reason: business route not implemented.
Immutable evidence: docs/current/business-evidence/8f9b273d9fc9d7814c6f3c61-20260916T150607886939.json.
The case script does not yet support this selected command. This result is an acceptance-coverage failure, not a browser/native reproduction of the activation fix. No executable case was added and no selected command passed. All three complete workflows and their executable native/browser cases remain outstanding. Do not promote the activation correction or successful build to business acceptance.
Source Access Boundary
The current packet still excludes required desktop dialog/task implementations identified by the preceding checkpoint. Exact bounded-reader requests returned exit 64 with IMPLEMENTATION_SOURCE_WINDOW_REJECTED: Use an exact source/support/native-match file named by the current packet; no directory scans for:
freecad-source/src/Gui/DlgProjectInformationImp.cppfreecad-source/src/Gui/TaskTransform.cpp
These are excluded source dependencies, not evidence that supplied local sources are absent. Their implementations, headers, UI resources and directly used transformation/edit-mode dependencies must be available in the next source packet. Do not bypass the bounded reader with another reader or directory scan. No source-budget exhaustion occurred; this was an exact-file scope rejection.
The previous packet also excluded web/src/web-commanddoc-owner-adapter.ts and web/src/web-commanddoc-owner-task.tsx; preserve that integration-source requirement. Current mount anchors remain workbench-shell.tsx:1634 and :1640. The generic task has no dedicated Project Information editor in the inspected opening section.
Next Implementation
- Include and read the supplied Project Information dialog implementation/UI. Reproduce its editable and read-only native document metadata, apply/cancel behavior, persistence and document isolation through the existing owner route and mounted task.
Std_ProjectInfoalready enters the document-view path atweb-desktop-adapter.ts:811; do not invent a generic metadata editor without the dialog contract. - Include and read TaskTransform and its dependencies. Retain this turn's activation correction, then implement its complete native task lifecycle and browser controls. Existing Transform routing reaches the Part Python family batch;
execute_commanddocbegins atWebViewCommands.h:962. Verify the actual missing handler and use the owning native document. - Include and read the Transform ViewProvider/edit-task implementation for
Std_TransformManip. Preserve native eligibility, previous-edit reset, edit ownership, interactive transformation, accept/cancel and undo behavior. - Add substantive selected business cases through the existing
tools/web-business-cases.mjsentry. Its supported list currently omits all three selected IDs;tools/web-acceptance-cases.mjsalready delegates unmapped IDs to it. Assert native document/geometry changes and cancellation/undo/persistence as applicable, as well as mounted controls. Do not add coverage tags or passing cases for activation checks alone. - Rebuild only affected targets and run only newly implemented selected cases using the official runner. Reuse current WASM unless a native change requires rebuilding. Keep the unresolved commands pending.
Preserved Prior Work And Requirements
Prior checkpoint: docs/current/web-commanddoc-df079700e661f96b62943800-checkpoint.md. Project Utility's initial 11 assertions passed under evidence docs/current/business-evidence/bd26394b7150f8a7ebacc84c-20260916T145853686395.json; its subsequent upload/OPFS extension is still unverified. It was not rerun this turn. The prior previous_validation_deferred result remains historical; current migration policy documents renewed authorization, so consult the current runner on a later authorized selected batch rather than changing its policy.
No acceptance contract, verifier, proof-area requirement, runner, passing status or covers tag was manually changed. No full-parity/API acceptance gate, IFC rerun, deployment, push or external message was performed. The standard build's existing index generators are build steps, not parity proof. IFC semantic export must continue to satisfy docs/current/IFC_SEMANTIC_EXPORT_CONTRACT.md; proxy geometry remains insufficient. Keep OCCT geometry, FreeCAD document semantics and Three.js display responsibilities intact.
The scoped acceptance process and frontend build both exited; no process started by this turn remains running. An initial unscoped git-status request and an oversized migration-policy source window were rejected by the scheduler; subsequent Git inspection was scoped and the policy was read through a smaller bounded window. Neither rejection is a CAD-business failure.