[WRONG BRANCH] release: v2.42.0-preview.20260903 - #3356
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>
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. |
⏳ 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 (1)
📝 WalkthroughWalkthroughThe changes tighten cursor heartbeat timing, strengthen watchdog failure assertions, and improve shutdown-launcher startup diagnostics. The package preview version also changes from ChangesTest reliability and release metadata
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This updates CI test timing margins and failure diagnostics without changing production behavior. The targeted tests pass, and no merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Title checkExplanation The title is misleading. The changes only adjust CI timing and diagnostics in tests/cursor-stream-health.test.ts and tests/shutdown-launcher.test.ts. The title also states v2.42.0-preview.20260903, while the PR objective refers to publishing 2.41.0-preview.20260903.
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 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 |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v2.41.0 published from main while this promotion was in flight, so the preview line has to move past it: a 2.41.0-preview version is now BEHIND a released one, which tests/release-version-line.test.ts refuses and npm would refuse after it. dev moved to 2.42.0 in #3354, the automatic post-release bump. Preview follows the same line at 2.42.0-preview.20260903, which is the conflict resolution here: neither side's value, because neither is what this publish is. Also brings the three CI timing-flake fixes from #3351, which is what preview CI failed on twice at 491ffcf. Preflight: 2.42.0-preview.20260903 unpublished on npm, no v2.42.0* tag, no GitHub release, and it moves preview forward from 2.40.0-preview.20260902.
|
Retargeted to 2.42.0-preview.20260903. v2.41.0 published from main while this was in flight, so a 2.41.0-preview version is now behind a released one — which is exactly what test 1/4 caught ( |
리뷰 · 우선순위 64 / 80이 PR은 코드 자체는 제품 경로가 아니라 테스트 두 파일과 버전 한 줄입니다. 게이트 쪽 현실이 중요합니다. 라인 단위로 보면 제품 버그보다는 “이 승격을 어떻게 통과시킬지”가 핵심입니다. 버전 줄은
메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Summary
78c630a93) ontopreviewso2.41.0-preview.20260903can publish.mainalready shipped this content asv2.41.0—latest=2.41.0, gitHead4600f8019— and the preview channel is the one still behind.previewCI failed twice on491ffcf88, both times onshutdown-launcherat ~20.1s. That is the flake test: stop three CI timing flakes from blocking the release train #3351 fixes: the failure was the startup deadline, not the shutdown path the test guards, and with discarded stdio it reported nothing butexpect(up).toBe(true).No functional change relative to what
mainpublished; this is the same tree plus the test-only fixes.Verification
bun test tests/shutdown-launcher.test.ts— 3 pass, 0 fail.bun test tests/cursor-stream-health.test.ts— 5 pass, 0 fail.maincarries the identical content and passed push-eventCross-platform CIandService lifecycleon4600f8019before publishingv2.41.0.Screenshot
Carries the Meta provider mark from #3338:
Checklist
Summary by CodeRabbit