Skip to content

ci(windows): six shards instead of four, ceiling unchanged (Windows stack 6/6) - #3572

Merged
lidge-jun merged 1 commit into
devfrom
codex/win-6-shard-ceiling
Sep 5, 2026
Merged

ci(windows): six shards instead of four, ceiling unchanged (Windows stack 6/6)#3572
lidge-jun merged 1 commit into
devfrom
codex/win-6-shard-ceiling

Conversation

@lidge-jun

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

Copy link
Copy Markdown
Owner

Summary

Windows suite stabilization, PR 6 of 6 (stacked on #3558). The platform-windows leg goes from four shards to six; its 25-minute ceiling is unchanged.

Run 33934756997 cancelled a green windows 3/4 at 25m12s — mid-file in tests/vision/vision-routed.test.ts, every prior case passing. That is the truncation the ceiling's own comment records for its 15-minute predecessor. Across five dispatches of this branch, completed Windows shards took 17-25 minutes and 3/4 never finished under 21. The bound itself is right — a wedged shard must still die — so the work per shard is cut instead of the bound raised: six shards put each leg at roughly two-thirds of the four-shard wall time, back inside the margin 25 was chosen to give.

The matrix, the --shard divisor, and the job name move together. ci-workflows.test.ts had pinned the Windows matrix to Linux's; the invariant it protects is that the matrix and divisor tile the suite exactly, not that both platforms share a count. It now pins Windows to its own divisor and to a contiguous 1..N matrix, and the Linux divisor assertion reads the TEST_SHARD env line it was always meant to observe (it had matched the Windows --shard literal by coincidence).

Workflow change: per MAINTAINERS.md this needs security review. No permissions, actions, secrets, or runner selection are touched — a matrix list, a divisor, and a job name.

Verification

  • bun test tests/ci-workflows/ci-workflows.test.ts: 135 pass
  • bun run typecheck clean
  • devlog/_plan/260905_windows_suite_stabilization/090_shard_ceiling.md — per-shard wall-time table for runs 33926041666 through 33934756997
  • CI run 33936695508 dispatched on this head; the unit's acceptance is two consecutive all-green Windows runs with every shard well under 25 minutes

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.

@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 5, 2026 01:29
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 14 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: 75f9439b-e1a9-4aba-88fd-0a194647349b

📥 Commits

Reviewing files that changed from the base of the PR and between bf8bc44 and ec9c1f4.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • tests/ci-workflows/ci-workflows.test.ts

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 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-05T01:32:11.805456Z 97e3e84 PR opened
ℹ️ 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 commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

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

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security-boundary review of exact head 97e3e84f0ebe078bb0ae5cf6f40206c0a627ae4d: the workflow diff changes only platform-windows.timeout-minutes from 25 to 40 plus comments. It does not change permissions, event scope, runner selection, checkout credentials, action refs, commands, or secret exposure, so I see no workflow-security expansion in this layer.

I am not approving it yet. The base PR #3558 remains changes-requested for an under-sized 15-second internal deadline and a vacuous two-child rendezvous, this exact head currently has a failing test 4/4, and the stated acceptance of two consecutive all-green Windows dispatches has not been demonstrated. Also correct the rationale: a 40-minute job ceiling cannot cover a full 25-minute first attempt plus a full retry (50 minutes). Either describe 40 as normal-run margin plus only an early-crash retry, or choose a ceiling that actually supports the full retry claim. Re-review after the parent is corrected and the documented Windows acceptance runs are green.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 97e3e84f0e

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml Outdated
# the paragraph above records for 15. Measured across five runs of one branch,
# completed Windows shards take 17-25 minutes; 40 clears that with margin for the
# 2× run-to-run variance seen on every other Windows bound and for one retry.
timeout-minutes: 40

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the pinned Windows timeout invariant

The required workflow test still asserts platform-windows.timeout-minutes is exactly 25 at tests/ci-workflows/ci-workflows.test.ts:121. With this workflow now parsing as 40, that assertion fails and blocks the CI/prepush suite; update the assertion and its stale explanatory comment alongside this value.

AGENTS.md reference: .github/AGENTS.md:L21-L25

Useful? React with 👍 / 👎.

Comment thread .github/workflows/ci.yml Outdated
# the paragraph above records for 15. Measured across five runs of one branch,
# completed Windows shards take 17-25 minutes; 40 clears that with margin for the
# 2× run-to-run variance seen on every other Windows bound and for one retry.
timeout-minutes: 40

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Budget the full retry window

When Bun crashes late in a slow shard, this ceiling still cannot provide the retry coverage claimed by the surrounding comment: completed jobs already take up to 25 minutes, so a crash near the end plus another comparable attempt can require nearly 50 minutes even before considering variation. At 40 minutes the second attempt will again be cancelled mid-suite; derive the timeout from setup time plus two worst-case test attempts, or otherwise stop claiming the bounded retry can complete.

Useful? React with 👍 / 👎.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 71 / 80

이 PR은 Windows suite stabilization 열차의 마지막 칸(6/6) 입니다. 지금 dev HEAD(24cc558d5)의 .github/workflows/ci.yml platform-windows job은 timeout-minutes: 25입니다. 본문이 인용한 run 33934756997은 windows 3/4가 실패가 아니라 CANCELLED로 끝났고, 시각은 25m12s, 로그는 tests/vision/vision-routed.test.ts 중간에서 끊겼으며 그 앞 케이스는 전부 통과였습니다. 예전에 15분 천장도 같은 방식으로 “아직 도는 초록 shard”를 잘랐고, 그때 주석에 그 역사가 남아 있습니다. 25로 올린 뒤에도 측정된 완료 벽시간이 17–25분이고 3/4는 21분 아래로 안 내려가서, 천장이 완료 시간과 같아졌습니다. crash-retry가 한 번 더 돌면 25분 안에는 끝낼 수 없습니다.

바꾸는 내용은 사실상 한 정수입니다. timeout-minutes를 25→40으로 올리고, 같은 주석 블록에 run 번호와 측정 범위를 적습니다. devlog/_plan/260905_windows_suite_stabilization/090_shard_ceiling.md에 shard별 벽시간 표와 수용 기준(연속 두 번 전 shard SUCCESS, 어떤 shard도 30분 초과 금지)이 있습니다. 권한·action pin·secret은 건드리지 않습니다. base는 dev가 아니라 #3558 브랜치 codex/win-5-wait-budgets입니다. 아래 칸(#3548#3550/#3555/#3558)이 케이스 예산·관찰을 고치고, 이 칸은 “고친 뒤에도 느린데 천장만 자르는” 마지막 실패 모드를 없앱니다.

현재 dev와의 관계는 CI 안정성입니다. Windows가 초록이어야 다른 열차(S04 split, Go catalog 등)의 merge gate가 믿을 만합니다. MAINTAINERS.md상 workflow 변경은 security review가 필요합니다. 다만 diff는 timeout 숫자와 주석뿐이라 공격 표면 증가는 없습니다. types/config 스플릿과는 무관합니다.

.github/workflows/ci.yml platform-windows timeout-minutes: 40 - 측정된 17–25분 위에 variance·retry 여유를 둡니다. 쐐기(wedge) shard는 15분 더 늦게 죽지만, 보고 형태(CANCELLED + 파일 위치)는 같습니다.

경로 주석 블록 (구 15→25 기록 옆) - 같은 실패 모드가 다시 났다는 증거가 run 33934756997로 남아 있어 다음 사람이 숫자를 함부로 내리지 않게 돕습니다.

경로 devlog/.../090_shard_ceiling.md - 표·수용 기준·스택 위치가 분명합니다. “숫자를 올리기만 하는 게 아니다”와 “케이스 수정과 천장은 독립”이 잘 분리되어 있습니다.

경로 스택 base #3558 - 이 PR 단독으로 dev에 바로 못 올립니다. 아래 Windows 칸이 먼저 랜딩되어야 합니다.

경로 security review - workflow 파일이라 형식상 리뷰가 필요합니다. 내용이 timeout 한 줄이면 리뷰 비용은 작습니다.

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

너의 추천
#3558(및 아래 Windows 칸)이 dev에 오른 뒤 security review 한 줄 받고 이 PR을 머지하세요. 숫자 근거가 충분하고, 25는 이미 초록 shard를 자르고 있습니다. 머지 전에 본문이 가리킨 CI run에서 전 shard SUCCESS·30분 미만인지만 확인하면 됩니다. 지금 close할 이유는 없습니다.

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

@lidge-jun
lidge-jun force-pushed the codex/win-6-shard-ceiling branch from 97e3e84 to 293f3e6 Compare September 5, 2026 01:36
@lidge-jun lidge-jun changed the title ci(windows): raise the shard ceiling to 40 minutes (Windows stack 6/6) ci(windows): six shards instead of four, ceiling unchanged (Windows stack 6/6) Sep 5, 2026
@lidge-jun
lidge-jun force-pushed the codex/win-5-wait-budgets branch from c477a02 to 3201181 Compare September 5, 2026 02:39
Base automatically changed from codex/win-5-wait-budgets to dev September 5, 2026 02:40
Run 33934756997 cancelled a GREEN windows 3/4 at 25m12s, mid-file with every
prior case passing - the same truncation the ceiling's comment records for
its 15-minute predecessor. Across five runs of this branch, completed Windows
shards took 17-25 minutes; 3/4 never finished under 21. The bound itself is
right (a wedged shard must still die); the work per shard grew into it.

Cut the work instead of raising the bound: six shards put each leg at roughly
two-thirds of the four-shard wall time, back inside the margin 25 was chosen
to give. The matrix, the --shard divisor, and the job name move together.

ci-workflows.test.ts pinned the Windows matrix to Linux's; that invariant was
about tiling the suite exactly, not about the two platforms sharing a count.
It now pins Windows to its own divisor and to a contiguous 1..N matrix, and
the Linux divisor check reads the TEST_SHARD env line it was always meant to
observe (it had been matching the Windows --shard literal by coincidence).
@lidge-jun
lidge-jun force-pushed the codex/win-6-shard-ceiling branch from 293f3e6 to ec9c1f4 Compare September 5, 2026 02:40
@lidge-jun
lidge-jun merged commit 3c920af into dev Sep 5, 2026
6 checks passed
@lidge-jun
lidge-jun deleted the codex/win-6-shard-ceiling branch September 5, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance, CI, tests, refactors, or build changes (not a user-facing bug or feature).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants