Skip to content

[WRONG BRANCH] release: v2.42.0-preview.20260903 - #3356

Merged
lidge-jun merged 4 commits into
previewfrom
codex/promote-preview-2410-v4
Sep 3, 2026
Merged

[WRONG BRANCH] release: v2.42.0-preview.20260903#3356
lidge-jun merged 4 commits into
previewfrom
codex/promote-preview-2410-v4

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

No functional change relative to what main published; 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.
  • main carries the identical content and passed push-event Cross-platform CI and Service lifecycle on 4600f8019 before publishing v2.41.0.

Screenshot

Carries the Meta provider mark from #3338:

Meta provider mark, before and after, dark and light

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Summary by CodeRabbit

  • Tests
    • Improved stream health test reliability with tighter timing and clearer watchdog failure messages.
    • Enhanced shutdown launcher diagnostics by capturing process output and reporting exit codes, signals, or startup timeouts.
    • Adjusted startup wait and test timeout thresholds for local and CI environments.
    • Expanded failure details to make startup and watchdog issues easier to investigate.

lidge-jun and others added 2 commits September 3, 2026 19:54
)

* 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>
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 3, 2026 10:56
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-03T11:21:25.857027Z b064b8f Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the chore Maintenance, CI, tests, refactors, or build changes (not a user-facing bug or feature). label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot changed the title release: bring the CI flake fixes onto preview for v2.41.0-preview.20260903 [WRONG BRANCH] release: bring the CI flake fixes onto preview for v2.41.0-preview.20260903 Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • wrong target branch (preview); retarget to dev.

What to do

  • Retarget this PR to dev — all contributions go to dev.

Its title has been prefixed with [WRONG BRANCH].
Automatic draft conversion failed (token cannot change draft status). Please convert this pull request to a draft manually. The required enforce-target check will keep failing until every issue above is resolved.

@github-actions
github-actions Bot marked this pull request as draft September 3, 2026 10:57
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: 15800b74-24b3-4325-977d-01d503b67b84

📥 Commits

Reviewing files that changed from the base of the PR and between f2ed110 and b064b8f.

📒 Files selected for processing (1)
  • package.json

📝 Walkthrough

Walkthrough

The changes tighten cursor heartbeat timing, strengthen watchdog failure assertions, and improve shutdown-launcher startup diagnostics. The package preview version also changes from 2.41.0-preview.20260903 to 2.42.0-preview.20260903.

Changes

Test reliability and release metadata

Layer / File(s) Summary
Cursor watchdog timing and assertions
tests/cursor-stream-health.test.ts
The heartbeat-only test reduces the ping interval from 100 ms to 40 ms. The failure assertion now identifies which watchdog fired first.
Shutdown launcher startup diagnostics
tests/shutdown-launcher.test.ts
The test adds CI and local startup budgets, captures launcher stdout and stderr, records exit codes and signals, reports captured diagnostics when startup fails, and derives the test timeout from the startup budget.
Preview package version
package.json
The package preview version changes to 2.42.0-preview.20260903.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to f2ed1

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)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ⚠️ Warning 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, wh… Use a title that describes the test fixes, such as "Fix CI timing flakes in launcher and cursor stream-health tests". If this is a release PR, correct the version and include the release changes in the changeset.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Full details: Title check

Explanation

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.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/promote-preview-2410-v4

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

github-actions Bot and others added 2 commits September 3, 2026 20:02
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.
@lidge-jun lidge-jun changed the title [WRONG BRANCH] release: bring the CI flake fixes onto preview for v2.41.0-preview.20260903 release: v2.42.0-preview.20260903 Sep 3, 2026
@lidge-jun

Copy link
Copy Markdown
Owner Author

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 (release version line > the in-tree version is never behind a released one). dev moved to 2.42.0 in #3354; preview follows the same line. Preflight re-run: version unpublished, no v2.42.0* tag, no GitHub release.

@github-actions github-actions Bot added bug Something isn't working and removed chore Maintenance, CI, tests, refactors, or build changes (not a user-facing bug or feature). labels Sep 3, 2026
@github-actions github-actions Bot changed the title release: v2.42.0-preview.20260903 [WRONG BRANCH] release: v2.42.0-preview.20260903 Sep 3, 2026
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 64 / 80

이 PR은 dev에 새 기능을 넣는 기여가 아닙니다. 이미 mainv2.41.0(gitHead 4600f8019)으로 나간 내용과, 방금 dev에 들어온 #3351(78c630a93)의 테스트 타이밍 flake 고침preview 채널에 맞춰 올리고, 미리보기 버전 문자열을 2.42.0-preview.20260903으로 맞추는 릴리스 승격(promote) 입니다. 지금 로컬 dev HEAD도 같은 #3351 SHA이고, #3354package.json2.42.0까지 올라간 상태입니다. 그래서 preview만 뒤처져 있으면 2.41.0-preview…는 이미 공개된 안정판보다 뒤가 되어 tests/release-version-line.test.ts와 npm 규칙에 걸립니다. 본문이 말하는 “preview CI가 491ffcf88에서 shutdown-launcher를 ~20.1초로 두 번 죽인 것”이 바로 #3351이 고친 시작 대기 예산 문제입니다.

코드 자체는 제품 경로가 아니라 테스트 두 파일과 버전 한 줄입니다. tests/shutdown-launcher.test.ts는 예전처럼 stdout/stderr를 버려 두면 실패가 expect(up).toBe(true) 한 줄뿐이라, 느린 러너인지 진짜 기동 실패인지 구분이 안 됩니다. 지금은 출력을 모으고, CI에서는 시작 예산을 60초로 늘립니다. 이 테스트가 지키려는 건 “시그널 전달 후 프록시가 포트를 비운다”이고, 시작이 늦어 그 전에 죽으면 그 보호가 아예 안 돌아갑니다. tests/cursor-stream-health.test.ts는 heartbeat ping을 100ms에서 40ms로 줄여, 400ms silence 시계보다 heartbeat-only 시계가 먼저 이기도록 여유를 줍니다. 바쁜 러너에서 silence가 먼저 울리면 실패 메시지가 “heartbeat-only가 깨졌다”처럼 보이기 쉽습니다.

게이트 쪽 현실이 중요합니다. enforce-targetwrong base (preview) 로 실패했고, 봇이 제목에 [WRONG BRANCH]를 붙이고 draft를 유지했습니다. 일반 기여 PR이면 dev로 돌리는 게 맞지만, 이 PR의 목적은 preview에 올리는 것이라 베이스를 dev로 바꾸면 승격이 아니라 중복 머지가 됩니다. #3355는 같은 계열의 지저분한 promote 시도로 이미 닫혔고, 이번 건이 그 뒤를 이은 정리본입니다. muse_release_train의 preview/main 경로(WP3/WP4) 관점에서는 내용이 이미 main/dev에 검증된 테스트 전용 수정이라 기능 위험은 낮고, 막히는 지점은 정책 게이트와 draft 상태입니다.

라인 단위로 보면 제품 버그보다는 “이 승격을 어떻게 통과시킬지”가 핵심입니다. 버전 줄은 dev#3354(2.42.0)와 맞추려 2.42.0-preview.20260903을 쓰는 쪽이 맞고, 예전 2.41.0-preview 계획 문구는 본문에 남아 있어도 실제 커밋 메시지(merge dev into preview for v2.42.0-preview.20260903)가 기준입니다.

tests/shutdown-launcher.test.ts - STARTUP_BUDGET_MS를 CI 60s로 올린 것은 flake 완화이지, step 4(포트 미해제) 보호를 약화하지는 않음. 다만 CI에서만 느린 진짜 기동 회귀는 더 늦게 드러날 수 있음.
tests/cursor-stream-health.test.ts - ping 40ms는 동작 검증 여유를 늘리지만, 러너 스케줄이 극단적으로 밀리면 여전히 silence가 이길 수 있음. 실패 시 어떤 watchdog이 이겼는지 메시지에 남기는 방향이 이미 주석에 있음.
package.json - preview 버전을 2.42.0-preview.20260903으로 올리는 것은 release-version-line·npm 규칙상 필수. 2.41.0-preview로 남기면 공개 v2.41.0보다 뒤처짐.
enforce-target / base=preview - 봇 게이트는 “모두 dev로”인데 이 PR은 채널 승격이라 충돌. retarget-to-dev는 잘못된 처방.
제목 [WRONG BRANCH] / draft - 자동 게이트 상태. 메인테이너가 의도한 promote면 draft 해제·게이트 예외·또는 정해진 promote 워크플로로 통과시켜야 함.

메인테이너의 판단이 필요한 지점

  • preview 베이스 promote를 enforce-target에서 어떻게 예외 처리할 것인지(수동 admin merge, 라벨 면제, 전용 workflow).
  • 오늘 낼 미리보기 버전이 정말 2.42.0-preview.20260903인지, 본문 요약의 2.41.0-preview.20260903 문구를 고칠지.
  • draft를 유지한 채 CI만 돌릴지, 바로 ready 후 머지할지.

너의 추천
내용(테스트 flake + preview 버전 정렬)은 dev/main에 이미 검증된 범위라 승격 자체는 진행해도 됩니다. 베이스를 dev로 바꾸지 마세요. draft/[WRONG BRANCH]는 게이트가 일반 기여 규칙으로 막은 것이니, 메인테이너가 preview 승격 경로로 명시적으로 통과시키세요. CI(특히 예전에 깨지던 shutdown-launcher·cursor-stream-health)가 초록이면 preview에 머지해 2.42.0-preview.20260903 publish를 이어가면 됩니다.

이 댓글은 grok-bot이 작성했습니다

@lidge-jun
lidge-jun marked this pull request as ready for review September 3, 2026 11:18
@lidge-jun
lidge-jun merged commit c779ae7 into preview Sep 3, 2026
29 of 33 checks passed
@lidge-jun
lidge-jun deleted the codex/promote-preview-2410-v4 branch September 3, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant