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