Problem
tests/phpunit-runtime-rejection.test.ts races terminalization against a fixed 500ms timer and asserts durationMs < 500. Under GitHub Actions scheduling, both push and pull_request contract jobs for #2273 failed at that timer even though the test passes locally and the runtime contract is event-driven.
Failed runs:
Failure:
Error: PHPUnit runtime rejection did not terminalize within 500ms
at tests/phpunit-runtime-rejection.test.ts:65
Expected
Prove prompt terminalization deterministically from the rejection event without making correctness depend on CI wall-clock scheduling. Keep a bounded deadlock guard, but separate that generous process guard from the semantic assertion.
Acceptance
- Contract remains red if the rejection event does not terminalize the operation.
- Test does not fail merely because a loaded CI runner schedules completion after 500ms.
- Redaction and infrastructure classification assertions remain intact.
Problem
tests/phpunit-runtime-rejection.test.tsraces terminalization against a fixed 500ms timer and assertsdurationMs < 500. Under GitHub Actions scheduling, both push and pull_request contract jobs for #2273 failed at that timer even though the test passes locally and the runtime contract is event-driven.Failed runs:
Failure:
Expected
Prove prompt terminalization deterministically from the rejection event without making correctness depend on CI wall-clock scheduling. Keep a bounded deadlock guard, but separate that generous process guard from the semantic assertion.
Acceptance