Client or integration
Other
Area
Other
Summary
The client connection transaction fixture in tests/clients/client-connect.test.ts launches its Bun child with spawnSync without a timeout. A child that prints valid final JSON but remains alive can keep the test worker blocked; fixture cleanup is only returned after the synchronous call and JSON parsing succeed.
The fixture should enforce an internal child deadline, reject unsuccessful child completion before interpreting output, and remove both temporary homes when child execution or output parsing fails.
Reproduction
- Use
dev commit 402be7c1f88283eb8465c3aec8437ccecd2542ec with the project-pinned Bun 1.4.0.
- Add a test-only script/deadline override to
runTransactionScenario, leaving its existing spawnSync behavior unchanged. The injected child records its PID and the two fixture homes, prints {"ok":true}, and keeps a five-second timer alive. Request a two-second internal deadline.
- The baseline returns successfully after the five-second timer instead of reporting a timeout. The regression fails because no process error was raised. A child without that finite test fuse would have no deadline inside this fixture.
- With a bounded synchronous call, require timeout failure before a natural-exit marker is written, absence of the exact child PID, and removal of both homes. Also check valid output followed by nonzero exit and malformed output.
The mock uses temporary directories and local child processes only. It does not contact a provider or change production configuration. This identifies a fixture safety gap; it does not establish which test caused the earlier macOS CI cancellation.
Version
402be7c; Bun 1.4.0 (34cbb9a40)
Operating system
Microsoft Windows 11 Pro, version 10.0.26200 (build 26200)
Provider and model
Not provider-specific; local test fixture only.
Logs or error output
Expected constructor: ClientStateProbeError
Received value: undefined
(fail) transaction fixture stops a child retained after valid output [5090.21ms]
0 pass / 1 fail / 2 assertions
Screenshots and supporting files
The regression and bounded fixture change will be linked in a focused pull request.
Redacted configuration
No production configuration is required. The existing fixture supplies isolated OPENCODEX_HOME and CODEX_HOME directories and mocked network responses.
Checks
Client or integration
Other
Area
Other
Summary
The client connection transaction fixture in
tests/clients/client-connect.test.tslaunches its Bun child withspawnSyncwithout a timeout. A child that prints valid final JSON but remains alive can keep the test worker blocked; fixture cleanup is only returned after the synchronous call and JSON parsing succeed.The fixture should enforce an internal child deadline, reject unsuccessful child completion before interpreting output, and remove both temporary homes when child execution or output parsing fails.
Reproduction
devcommit402be7c1f88283eb8465c3aec8437ccecd2542ecwith the project-pinned Bun 1.4.0.runTransactionScenario, leaving its existingspawnSyncbehavior unchanged. The injected child records its PID and the two fixture homes, prints{"ok":true}, and keeps a five-second timer alive. Request a two-second internal deadline.The mock uses temporary directories and local child processes only. It does not contact a provider or change production configuration. This identifies a fixture safety gap; it does not establish which test caused the earlier macOS CI cancellation.
Version
402be7c; Bun 1.4.0 (34cbb9a40)
Operating system
Microsoft Windows 11 Pro, version 10.0.26200 (build 26200)
Provider and model
Not provider-specific; local test fixture only.
Logs or error output
Screenshots and supporting files
The regression and bounded fixture change will be linked in a focused pull request.
Redacted configuration
No production configuration is required. The existing fixture supplies isolated
OPENCODEX_HOMEandCODEX_HOMEdirectories and mocked network responses.Checks