Files
FreeCADWasmDev/docs/current/WEB_ACCEPTANCE_TIMEOUT_PROGRESS.md

2.9 KiB

Web Acceptance Timeout Repair

2026-09-16. Cycle 9111 was alive but its Web acceptance was not progressing normally. The outer pipeline terminated its acceptance wrapper after 210 seconds, while docs/business-acceptance/Web.json declares 840 seconds. The wrapper's separately owned browser process group continued running after its parent was killed. Three manual workflows had passed; the IFC import step was still running. This was not evidence that all Web functions failed.

Changes

  • Both acceptance paths in run_module_batch_pipeline.py derive their outer timeout from the existing module contract, plus 180 seconds per selected independent verifier and 30 seconds for evidence/cleanup. Web receives 870 seconds. The inner case timeout remains 840 seconds; no acceptance assertion or case timeout was relaxed.
  • Outer cancellation first sends SIGTERM and permits the runner to unwind. The runner handles SIGTERM with normal Python unwinding, so its existing finally block terminates the owned browser/WASM process group. The outer wrapper bounds this grace period and retains timeout diagnostics.
  • A mixed batch of product workflows and Web desktop commands now respects its declared frontend build. The packet previously discarded that declaration because it was not a native *Probe target, then selected an unrelated Web native probe. Explicit native per-ID build overrides remain supported.

Verification

47 business automation tests and 181 scheduler tests passed. New coverage includes the 840/870-second contract relationship, independent-verifier time, malformed timeout fallback, frontend-owner selection/path validation and a real nested subprocess test: the case starts, its outer wrapper times out, and its grandchild cannot subsequently write the orphan marker. Separate coverage confirms partial timeout stdout/stderr are retained.

The old orphaned browser processes were cleaned up when the service was stopped for this repair. The corrected work packet selects FreeCADWebReactProduct with kind=frontend.

Completed Execution

The corrected 20-case Web batch passed. Acceptance took 332.951 seconds, which confirms that the previous 210-second outer cutoff was insufficient. The actual manual workflows passed, including IFC file import. No manual/browser case process remained after completion. Evidence: business-evidence/c09f49a175e838f6c719267d-20260916T032524313823.json.

Repeating the identical pipeline required no build and no case execution: 20 results reused one verified evidence report in 0.885 seconds; total pipeline time including the full audit was 5.269 seconds. Relevant source, artifact and case checks remain in force.

At 2026-09-16 03:25 UTC, current accepted evidence increased from 95 to 115 out of 1508 by refreshing these 20 existing workflows. There are still 1342 missing executable cases. This refresh is not new business coverage and does not close those missing cases. The IFC semantic supplement remains accepted.