test(windows): close the four residual shard-2 Windows failures - #2975
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
✅ Deterministic PR hygiene checks passed. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe changes add deterministic filesystem handshakes for storage race tests, synchronize the initialization EOF test with its prompt, and make the shim-retarget test use cross-platform Bun fixtures. ChangesStorage race synchronization
Process test stability
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR makes Windows and storage race tests deterministic without changing normal application behavior. No actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
리뷰 · 우선순위 60 / 80설명 지금 실패 메커니즘은 세 종류다. (1) launchd service plist 테스트가 extensionless 프로덕션 쪽 변경은 라인 수준 tests/service.test.ts launchd shim - 메인테이너의 판단이 필요한 지점
너의 추천 merge 하라. 가능하면 merge 직전/직후 이 댓글은 grok-bot이 작성했습니다 |
Summary
The last four Windows-only failures from the dispatched leg. After #2968 and #2972, shards 1, 3 and 4
pass on run 33289201339; shard 2 held
these four.
platform-windowsruns only onworkflow_dispatch, so none of them was visible to the CIthat gates
release.yml.Four failures, three distinct mechanisms
launchd service plist > the generated launcher command follows a retargeted shim…— a falseplatform assumption the earlier serialization fix in #2968 did not reach. That commit corrected the path
assertions, but the test also executes an extensionless
#!/bin/shfixture, and Windows cannot runthat as a native executable. The fixture is now a cross-platform Bun redirect, keeping the version
retargeting, old-version deletion, spaces-and-apostrophes and path-serialization coverage it had.
ocx init piped stdin (#754) > exits cleanly when stdin closes before the first prompt answer— the8-second race started at process spawn, so Windows startup and import time was being charged against
EOF handling. It now waits for the first prompt to appear, closes stdin while readline is genuinely
awaiting an answer, and waits on exit directly. The budget no longer measures interpreter startup.
Two
storage mutation coordinatorcases — both were sleep-based assumptions that a loaded Windowsrunner invalidates:
renameNoReplace()islinkSyncthenunlinkSync, so there is a real interval where both namesexist. The test treated destination existence as move completion and could observe that interval.
left an unresolved request, which matches the
ECONNRESET-then-401 cascade in the Windows log.Both now use an explicit handshake — the worker publishes only after every move completes, and restore is
attempted only once the cleanup lease is confirmed held. Teardown always releases the worker and drains
the pending request. No timeout was raised and nothing was skipped: a longer sleep would have hidden the
linkSync/unlinkSyncwindow rather than closing it.Verification
Based on
dev@aa16a71e0.bun test tests/service.test.ts tests/init-eof.test.ts tests/storage-mutation-race.test.ts→ 154 pass, 0 failbun x tsc --noEmit→ cleanTwo of the four could not be reproduced exactly on POSIX — the Windows scheduling delay and the 401
cascade specifically — so what each fix removes is the incidental dependency (spawn time, wall-clock
sleeps, an ambiguous filesystem observation) rather than a simulated repro. The dispatched Windows run on
this branch is the real gate and is what I will check before merging.
Checklist
Summary by CodeRabbit
Bug Fixes
Tests