Problem
A current-main Studio Web live eval timed out after 30 minutes while waiting for wp-codebox recipe-run --json to finish. The eval wrapper was killed by the shell timeout, but the child wp-codebox recipe-run processes remained orphaned and continued running with no stdout/stderr evidence and no finalized artifact bundle.
This blocks using WP Codebox as the proof harness for Studio Web demos because a stalled live browser probe provides no actionable failure payload and leaks long-running processes.
Reproduction evidence
Repo/state:
- Studio Web worktree:
/Users/chubes/Developer/studio-web@proof-current-main
- Studio Web main commit:
2f777a8 (Merge pull request #353 from chubes4/fix/preview-phase-metadata-smoke)
- Generated recipe:
/Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts/live-2026-06-02T17-15-05-572Z/local-restaurant-launch/studio-web/recipe.json
- Artifact root:
/Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts/live-2026-06-02T17-15-05-572Z/local-restaurant-launch/studio-web/wp-codebox-artifacts
Command run by the eval:
node scripts/website-generation-eval.mjs live \
--scenario local-restaurant-launch \
--adapter studio-web \
--artifacts-dir /Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts \
--output /Users/chubes/Developer/studio-web-eval-runs/current-main-proof/evidence.json \
--wp-path /Users/chubes/Studio/intelligence-chubes4 \
--workspace-root /Users/chubes/Developer
Observed result:
- Shell timeout killed the wrapper after 30 minutes.
- No final
evidence.json was written.
- Runtime artifact directory existed, but contained no collected files/logs:
wp-codebox-artifacts/runtime-mpwweehw-y7v8j3/files/
wp-codebox-artifacts/runtime-mpwweehw-y7v8j3/logs/
- The underlying
wp-codebox recipe-run parent/child processes were still running after wrapper timeout:
node /Users/chubes/Developer/wp-codebox/packages/cli/dist/index.js recipe-run ... --json
/Users/chubes/.nvm/.../node --experimental-wasm-jspi --experimental-wasm-stack-switching /Users/chubes/Developer/wp-codebox/packages/cli/dist/index.js recipe-run ... --json
kill did not stop them; kill -9 was required.
The generated recipe dry-run succeeds, so this is not a fixture/recipe-shape failure:
wp-codebox recipe-run \
--recipe /Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts/live-2026-06-02T17-15-05-572Z/local-restaurant-launch/studio-web/recipe.json \
--artifacts /Users/chubes/Developer/studio-web-eval-runs/current-main-proof/manual-dry-codebox-artifacts \
--json \
--dry-run
Desired outcome
wp-codebox recipe-run --json should fail with bounded diagnostics instead of hanging indefinitely.
Acceptance criteria
- Browser-probe/recipe-run has a bounded timeout or watchdog for stalled Playground/browser operations.
- On timeout, WP Codebox emits a structured JSON failure result with the stalled command, elapsed time, active phase if known, and any available runtime/browser logs.
- Runtime artifact collection still writes diagnostic files/logs when a run times out.
- Child Playground/Node processes are disposed when the parent command exits or is interrupted.
- A smoke/regression test covers an intentionally stalled recipe or browser probe and proves the process exits with diagnostics.
Downstream impact
Studio Web current-main live eval cannot currently prove the demo path because the harness can hang without evidence. Dry-run plumbing passes, but the live local-restaurant-launch run does not produce a final failure envelope.
AI assistance
- AI assistance: Yes
- Tool(s): OpenCode (openai/gpt-5.5)
- Used for: Ran the current-main Studio Web proof eval, inspected the generated recipe/artifacts/processes, and drafted this upstream blocker from observed evidence.
Problem
A current-main Studio Web live eval timed out after 30 minutes while waiting for
wp-codebox recipe-run --jsonto finish. The eval wrapper was killed by the shell timeout, but the childwp-codebox recipe-runprocesses remained orphaned and continued running with no stdout/stderr evidence and no finalized artifact bundle.This blocks using WP Codebox as the proof harness for Studio Web demos because a stalled live browser probe provides no actionable failure payload and leaks long-running processes.
Reproduction evidence
Repo/state:
/Users/chubes/Developer/studio-web@proof-current-main2f777a8(Merge pull request #353 from chubes4/fix/preview-phase-metadata-smoke)/Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts/live-2026-06-02T17-15-05-572Z/local-restaurant-launch/studio-web/recipe.json/Users/chubes/Developer/studio-web-eval-runs/current-main-proof/artifacts/live-2026-06-02T17-15-05-572Z/local-restaurant-launch/studio-web/wp-codebox-artifactsCommand run by the eval:
Observed result:
evidence.jsonwas written.wp-codebox-artifacts/runtime-mpwweehw-y7v8j3/files/wp-codebox-artifacts/runtime-mpwweehw-y7v8j3/logs/wp-codebox recipe-runparent/child processes were still running after wrapper timeout:node /Users/chubes/Developer/wp-codebox/packages/cli/dist/index.js recipe-run ... --json/Users/chubes/.nvm/.../node --experimental-wasm-jspi --experimental-wasm-stack-switching /Users/chubes/Developer/wp-codebox/packages/cli/dist/index.js recipe-run ... --jsonkilldid not stop them;kill -9was required.The generated recipe dry-run succeeds, so this is not a fixture/recipe-shape failure:
Desired outcome
wp-codebox recipe-run --jsonshould fail with bounded diagnostics instead of hanging indefinitely.Acceptance criteria
Downstream impact
Studio Web current-main live eval cannot currently prove the demo path because the harness can hang without evidence. Dry-run plumbing passes, but the live
local-restaurant-launchrun does not produce a final failure envelope.AI assistance