Files
FreeCADWasmDev/docs/current/web-commanddoc-1b2b9c895291363d97faeba7-checkpoint.md

81 lines
4.5 KiB
Markdown

# 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:
```sh
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.