[WRONG BRANCH] x - #3355
Conversation
) * test(shutdown): diagnose and budget the launcher startup wait This test failed twice on the v2.41.0 promotion, on macOS and on shard 4/4, both at exactly 20146-20222ms. That is the STARTUP deadline, not the shutdown path the test is named for: the proxy never answered /healthz, so the signal forwarding this test exists to guard never ran. Locally the same spawn is healthy in ~800ms across all three signals, so the budget was already 25x the observed cost. A shared CI runner building four shards plus a macOS suite in parallel is a different machine, and it exceeded it twice in one afternoon. Two changes, and the first matters more than the second. Launcher stdout/stderr are captured instead of discarded, and a startup failure now reports whether the launcher exited, with what code and signal, and what it printed. The old failure said only expect(up).toBe(true) — no log, no exit code, no way to tell a slow runner from a real startup regression. That missing evidence is why this took a local reproduction to classify at all. The budget then goes to 60s on CI and stays at 20s locally. Raising it cannot hide the regression the test guards: an orphaned proxy fails at step 4, where the port never frees, under its own deadline. What a too-short startup budget does hide is that distinction, by failing before the shutdown path runs. Verification: bun test tests/shutdown-launcher.test.ts 3 pass 0 fail; bun run typecheck exit 0. * test(cursor): give the heartbeat-only watchdog room on a loaded runner The heartbeat ping ran at 100ms against a 400ms silence threshold, so the test had four ticks of margin. Miss three in a row and the SILENCE watchdog fires first — a different error, and a failure report that reads as "the heartbeat-only watchdog is broken" when the real story is a busy runner. That is what happened on the v2.41.0 main promotion: the assertion wanted "heartbeat-only" and got "no inbound frames for 1s before turnEnded". Locally all five tests in this file pass. Nothing about the behaviour under test needs a slow ping. The point is that heartbeats reset the silence clock and do not reset the heartbeat-only clock, and a 40ms interval exercises both with ten ticks of margin instead of four. Verification: bun test tests/cursor-stream-health.test.ts 5 pass 0 fail. --------- Co-authored-by: jun <jun@lidge.dev>
|
✅ Deterministic PR hygiene checks passed. |
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. |
⏳ DRAFT
What to do
Its title has been prefixed with |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe tests now use tighter cursor heartbeat timing and provide detailed launcher startup diagnostics. The launcher test captures child output and exit state, uses CI-aware startup budgets, and aligns its timeout with that budget. ChangesTest Reliability and Diagnostics
Estimated code review effort: 2 (Simple) | ~10 minutes ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 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 |
|
Duplicate; #3347 already tracks this branch. |
리뷰 · 우선순위 54 / 80이 PR은 제목이 지금 코드 자체는 제목 base
draft + BLOCKED - 지금 상태로는 머지 불가. 승격이 맞다면 undraft·제목/본문 정리·게이트 예외(또는 maintainer override)가 필요하다. 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
y
Summary by CodeRabbit