Overview
Add Hypothesis tests (and CrossHair on extracted transition data) for _handle_subprocess_timeout (cuprum/_subprocess_execution.py, line 263) and _terminate_pipeline_remaining_stages (cuprum/_process_lifecycle.py, line 235).
Justification
Timeout and cleanup paths are temporal and branch-heavy, with risk of inconsistent payloads, non-idempotent cleanup, and double-termination scheduling.
Benefit
- Proves timeout payload consistency
- Proves idempotent cleanup
- Proves no double-termination scheduling
Cost Trade-Off
Medium-high. Requires fakes around process state.
Verifiability Improvements
Represent the process lifecycle as explicit enum/state records, then verify reducers independently.
Recommended Order
Phase 3 — state-machine work after refactors isolate pure transitions.
Raised from PR #62 by @leynos.
Overview
Add Hypothesis tests (and CrossHair on extracted transition data) for
_handle_subprocess_timeout(cuprum/_subprocess_execution.py, line 263) and_terminate_pipeline_remaining_stages(cuprum/_process_lifecycle.py, line 235).Justification
Timeout and cleanup paths are temporal and branch-heavy, with risk of inconsistent payloads, non-idempotent cleanup, and double-termination scheduling.
Benefit
Cost Trade-Off
Medium-high. Requires fakes around process state.
Verifiability Improvements
Represent the process lifecycle as explicit enum/state records, then verify reducers independently.
Recommended Order
Phase 3 — state-machine work after refactors isolate pure transitions.
Raised from PR #62 by @leynos.