S00-012: Verify runner prompt delivery and lifecycle regressions

Changes: Record verification evidence and replace the blocked S00-012 handoff with independent QA review instructions. Retain the existing stdin implementation and regressions from prior checkpoints; no new source changes.
Validation: Reproduced the legacy partial stdin timeout on Python 3.9.6 and reaped the child. All 28 automation tests passed, including exact 140024-byte UTF-8/EOF and timeout/submit descendant cleanup. make check passed all 72 tests; git diff --check passed. No live model, application readiness or Windows cleanup check is claimed.

Task: S00-012
Agent: auto-ci-cd-f101e40d9902
Role: ci-cd
Action: claim
Status: review

Task title: Fix runner prompt delivery after partial stdin timeout
This commit is contained in:
wt committed 2026-10-15 01:50:53 +07:00
1 parent bdfde480d4
commit adb152fdd0
7 files changed
+72 -14

No files matched your search

+7 -4
View File
@@ -1,7 +1,10 @@
# S00-012 partial handoff
# S00-012 handoff for independent QA review
Executor: auto-ci-cd-28868645424b, ci-cd. Existing stdin fix and delayed UTF-8 regression from checkpoint c28412a were inspected. Complete 140024-byte delivery/EOF and current prompt budgets pass. No runner source changes this session.
Executor: auto-ci-cd-f101e40d9902 (ci-cd), 2026-10-15.
Result: preserved stdin correction verified after independently reviewed S00-013/S00-014. No new source edits in this session. Runner supplies the persisted binary UTF-8 prompt as stdin and polls wait, retaining deadline and terminal-transition monitoring. Complete prompt and EOF no longer depend on pipe retry behavior.
Added two descendant cleanup regressions in tests/tooling/test_automation.py; timeout scenario passes, submit-transition scenario errors. A SIGTERM-ignoring descendant records readiness and would write a source file after 1.5 seconds. Parent submits and sleeps. First stop_process_tree succeeds; its repeated finally invocation after parent is reaped (-15) raises EPERM at os.killpg(SIGTERM). Broad OSError handling then tries invalid escalation from review state. No acceptance or submission claimed.
Review cumulative S00-012 source checkpoints c28412a (stdin and delayed UTF-8 regression) and 49c054a (timeout/submit descendant checks), plus accepted prerequisite S00-014 cleanup and S00-013 prompt-budget changes. All exist in current code. Re-run make check and inspect this executor's evidence/commit message against actual metadata diff. Independent QA must approve/reject; no done is set by executor.
Evidence: state/evidence/S00-012-auto-ci-cd-28868645424b.md. Full automation run: 25/26 passed, exit 1. make check not run following this blocker. Next fresh remediation must resolve this bounded repeated-cleanup lifecycle failure without weakening process-tree termination or suppressing real live-process permission failures. After independently reviewed remediation, a fresh S00-012 executor must rerun regressions/make check and submit. Coordinator owns checkpoint; this reporter stops after escalate.
Actual checks: legacy pipe failure reproduced on Python 3.9.6 with 140000 UTF-8 bytes and a .5-second delayed reader (both communicate calls timed out; child killed/reaped). Automation suite: 28 tests passed in 11.202s, exit 0. Complete 140024-byte UTF-8/EOF, fresh sessions, prompt budgets, scope, timeout/submit descendant cleanup and deterministic repeated-cleanup tests pass. make check: 72 tests passed in 17.834s, exit 0; 279 tasks validated with immutable snapshot checks. No blocker found.
Evidence: state/evidence/S00-012-auto-ci-cd-f101e40d9902.md. No model, browser, product/provider readiness, Windows cleanup or fresh natural EPERM claim. Root S00-002 is not accepted by this submission. Coordinator must commit the submission before launching a fresh QA review; this process ends after submit.