Files
FreeCADWasmDev/docs/current/cloud-configure-recompute-boundary.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

42 lines
2.5 KiB
Markdown

# Cloud configure/recompute batch 2650dce33b1c1ca67fcd1839
Selected behavior: `Cloud:cloud.configureRecompute`.
The existing six native Cloud Python setters remain the configuration path.
`fc_web_cloud_configure` now obtains the native FreeCAD active document, creates
a document when none exists, and invokes native `Document::recompute`. The
application retains that document for subsequent requests. The returned summary
is the recomputed document's name; count advances only after recompute returns,
and its native error output, negative count, or Python exception fails the request.
The Python binding returns an object count, not a success boolean: zero objects
is valid. The recovery patch removes the incorrect truthiness test and reads
the native error output separately from that count.
Remaining boundaries:
- Document context belongs to the existing Cloud WASM runtime. The six-string
request has no document selector or cross-worker document transfer contract;
this change does not claim to recompute documents owned by another worker.
- Configuration applies the supplied connection settings. It does not establish
or verify a remote authenticated Cloud connection.
- Legacy fixture/recovery probe counters are outside this selected business
entry point and do not establish actual document recomputation evidence.
- Build, artifact synchronization, and business acceptance are pending with the
outer pipeline. No runtime pass is claimed by these edits.
Reuse: `CloudKernelProbe.cpp`, `cloud-facade.ts`, `cloud.worker.ts`, and the
existing `tools/cloud-business-cases.mjs` / `docs/business-acceptance/Cloud.json`
contract. The business script now covers two configurations in the same document,
null-input rejection and subsequent recovery, filters `FREECAD_BUSINESS_IDS`,
and terminates available pthread workers before flushing its result and exiting.
The outer pipeline must run these cases against rebuilt artifacts; no failure
key or issue ID was supplied for evidence linkage in this recovery packet.
The subsequent `acceptance_incomplete` evidence
`06c785a1dc5205859aebcfe3-20260908T230211941624.json` contains empty results.
The runner supplies `FREECAD_BUSINESS_IDS` as a JSON array; the case script's
comma splitting incorrectly skipped the selected capability. The script now
parses and validates that JSON array and reports malformed selectors as failures.
This correction changes only case selection, with native behavior retained.
Actual business execution and acceptance remain pending with the outer pipeline.