4.5 KiB
CommandDoc continuation checkpoint
Batch 1b2b9c895291363d97faeba7, 2026-09-16.
Selected: Std_Edit, Std_ProjectUtil, Std_Quit, Std_Refresh. Batch incomplete.
Current change
WebViewCommands.h::execute_Std_Refresh now delegates to the existing
execute_commanddoc('Recompute', ...) and restores the Std_Refresh identity.
The previous direct core call omitted changed and selection fields. The reused
handler retains cycle-confirmation and native transaction behavior and returns
native selection identities. Desktop source at CommandDoc.cpp:1662 calls
recompute(None,True,True), with explicit confirmation before retry without
cycle checking. Existing application integration is reused:
workbench-shell -> desktop dispatcher -> web-desktop-adapter -> PartBox
document-view -> native handler -> scene refresh.
Added an executable Std_Refresh branch to tools/web-business-cases.mjs: mounted command execution; stale expression-dependent box before recompute; native volumes 60/48 becoming 60/120; valid OCCT shapes; selected object/document identity; a second document retaining volume 1000; wrong-owner rejection and native state preservation. Registered this branch in the existing case selection and workbench navigation. No coverage tags or contract edits.
Verification
Case JavaScript syntax and scoped diff whitespace checks returned zero before the final fixture expectation correction. The source/case files are untracked, so diff whitespace is not an independent patch-history check. Focused PartBox and DocumentProbe incremental build completed successfully; existing long-string, macro-copy, pthread-memory and FS export warnings remain. Public sync copied six artifacts; preview sync verified nine and copied four. No frontend implementation changed, so no frontend rebuild was required.
Commands completed:
python3 tools/web_build_lock.py -- cmake --build freecad-source/build-web/configure --target FreeCADWebPartBoxProbe FreeCADWebDocumentProbe -j8
node tools/sync-assets.mjs
node tools/sync_preview_modules.mjs Part Web
python3 tools/run_business_acceptance.py --module Web --ids Web:desktop:Std_Refresh --reuse
Initial isolated acceptance failed the fixture assertion: the direct Part::Box had already updated to volume 60, while the expression-dependent box correctly remained at volume 48. Corrected the direct box expectation to 60; retained the required dependent 48-to-120 geometry transition and all other assertions. Failure evidence: business-evidence/1e18844ec8f24842e144132e-20260916T142639325179.json. Second isolated acceptance passed, five assertions, executedCount 1, reused false, exit 0, 5.468 seconds. Evidence: business-evidence/1e18844ec8f24842e144132e-20260916T142743166044.json. No source/case edits followed that pass. All build/sync/test sessions completed.
Remaining boundaries
- Refresh: the bounded native/browser case passed. Add cycle cancel/proceed, transaction/undo and invalid-document proof before claiming full semantics.
- Edit: retained first error is No module named 'FreeCADGui' in the PartBox owner. Existing mounted controls/cases remain. Implement actual native ViewProvider begin/finish/toggle and provider-specific mutation/commit/cancel; synthetic flags or a different document runtime are insufficient.
- ProjectUtil and Quit: existing owner adapter and mounted owner task were located, but their implementation and missing semantic proof remain to be inspected. They were not changed or certified this turn. The owner adapter files are outside the current packet support paths; request packet anchors through the normal scheduler continuation if necessary.
Preserve all original and supplemental requirements and predecessor checkpoints, including web-commanddoc-eba17362c96c85c7ece4a508-checkpoint.md and web-commanddoc-bd25920b6a473b85add95db6-checkpoint.md. The unchanged IFC_SEMANTIC_EXPORT_CONTRACT.md is mandatory; proxy geometry is insufficient. No IFC proof was rerun or certified here. No acceptance contract, verifier, proof-area requirements, machinery or passing statuses were edited. No full-parity/API gate, deployment, push or external message ran.
Four supplemental source windows were used: commanddoc result contract, desktop Refresh source, adapter dispatch, and existing case helpers. Metadata summary and bounded symbol searches were also used. No further source windows remain this turn. Unscoped git/search and a non-packet workflow read were rejected before execution; these are scope diagnostics, not business failures.