56 lines
2.9 KiB
Markdown
56 lines
2.9 KiB
Markdown
# 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.
|