Repository navigation
fix(test): tolerate delayed Windows process exit observation - #1608
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed October 2, 2026, 10:42 AM ET / 14:42 UTC (Revision 2). ClawSweeper reviewWhat this changesThree process-cleanup tests now allow five seconds to observe termination while preserving the existing timeout and cancellation latency checks. Merge readiness✅ Ready for maintainer review The PR remains useful: current main still contains the premature exit assertions. No introduced correctness or security defect was found, and the previous review has no outstanding findings. Priority: P2 Review scores
Verification
How this fits togetherThe shared process-wait helper bounds child-process execution and output collection for Piper voice extraction. These tests check that cancellation and timeout return promptly and terminate the fixture process. flowchart TD
A[Child process fixture] --> B[Shared process wait]
C[Timeout or cancellation] --> B
B --> D[Bounded cleanup]
D --> E[Prompt return assertion]
D --> F[Eventual exit observation]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep cleanup latency and eventual termination as separate bounded invariants without changing production behavior. Do we have a high-confidence way to reproduce the issue? Yes, source establishes the assertion race: asynchronous termination can outlast the helper's one-second cleanup budget. The captured body reports a Windows failure and repeated after-fix passes; this review did not execute tests. Is this the best way to solve the issue? Yes, separating prompt return from eventual exit matches the existing contract, and the thirty-second fixture cannot pass merely by naturally finishing within the new observation window. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 4e285bbc6595. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
Summary
Regression
PR #1607 hit
BoundedProcessWaitTests.WaitAsync_CancellationKillsProcessWithoutUsingTimeoutBudgetin Core and CLI tests.BoundedProcessWaitintentionally returns after its one-second cleanup budget, so Windows can reportHasExited == falsebriefly even though the asynchronous kill is still completing.Required proof pools
none: test-only stabilization with no product, UI, gateway, MCP, or installer behavior changeValidation
Exact head
03f301e3:./build.ps1: passedBoundedProcessWaitTests: 30/30 repeated runs passed, 6 tests per runBoundedProcessWaitTests: 6 passedReal behavior proof