Skip to content

test: repair Windows-only and roster regressions surfaced by full-platform dev CI - #5592

Merged
lidge-jun merged 1 commit into
devfrom
codex/260923-ci-scope-windows-shell
Sep 22, 2026
Merged

lidge-jun merged 1 commit into
devfrom
codex/260923-ci-scope-windows-shell

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Summary

A manual full-platform Cross-platform CI run on dev 7687584 (run 35774567373) failed the Windows and one Linux shard. Pull-request runs skip the Windows shards for non-native changes, so these regressions reached dev unseen. A release push run on main/preview runs every shard and would fail on each of them.

  • tests/providers/provider-registry-parity.test.ts: the openai-apikey roster count was still 11 after GPT-6 Sol and Luna were added (13). The assertion now compares the registry roster with the login roster, whose exact ids are already pinned above it. This failed on Linux too.
  • tests/ci-workflows/ci-scope-reduction.test.ts: the executed emitter and aggregate-gate cases launch /bin/bash, which the Windows runner lacks. Those steps run under bash on ubuntu-latest, so the executed cases now follow the repository convention of skipping on win32. The structural assertions still run on every platform.
  • tests/ci-workflows/setup-hooks.test.ts: the fixture containment check compared Git's Windows path spelling with the fixture root as raw strings. It now compares the filesystem-resolved paths and still rejects paths outside the fixtures.
  • tests/cli/cli-connect-readiness.test.ts: the probe copied Windows process.env into a plain object whose key can be Path, while the resolver reads env.PATH. The fixture now provides an explicit PATH entry for the lower launcher.

Verification

  • Failures identified from the check-run annotations of run 35774567373 (windows 2/9, 4/9, 5/9, 6/9 and test 3/4).
  • A workflow_dispatch Cross-platform CI run on this branch exercises the Windows shards that the pull-request run skips.
  • Local test, typecheck and build: NOT RUN (hosted CI only).

Checklist

  • Targets dev
  • No assertion loosened on Linux or macOS; no cap raised; no timeout raised

@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 22, 2026 19:43
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 22, 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-22T19:46:23.453156Z a94e550 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.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: lidge-jun/opencodex/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 2bf12fc1-2964-4efe-b233-a76c5f26696a

📥 Commits

Reviewing files that changed from the base of the PR and between 7687584 and a94e550.

📒 Files selected for processing (4)
  • tests/ci-workflows/ci-scope-reduction.test.ts
  • tests/ci-workflows/setup-hooks.test.ts
  • tests/cli/cli-connect-readiness.test.ts
  • tests/providers/provider-registry-parity.test.ts
 _______________________________________________________________________________________________________________________________________________
< Costly tools don't produce better designs. Beware of vendor hype, industry dogma, and the aura of the price tag. Judge tools on their merits. >
 -----------------------------------------------------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@lidge-jun
lidge-jun merged commit a4bdc03 into dev Sep 22, 2026
5 of 24 checks passed
@lidge-jun
lidge-jun deleted the codex/260923-ci-scope-windows-shell branch September 22, 2026 19:43
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 18 / 80

이 PR은 dev에서 돌린 전체 플랫폼 Cross-platform CI(run 35774567373)가 Windows 여러 샤드와 Linux 한 샤드에서 깨진 이유를, 테스트만 손봐서 막습니다. PR CI는 네이티브가 아닌 변경에서 Windows 샤드를 건너뛰어서, 같은 깨짐이 dev에 먼저 올라간 상태였습니다. 손본 곳은 네 개입니다. openai-apikey 모델 개수 단언이 GPT-6 Sol/Luna 추가 뒤에도 11로 남아 Linux까지 깨지던 부분을, 바로 위에서 이미 고정해 둔 로그인 로스터와 같은지 비교하도록 바꿨습니다. 워크플로 emitter·aggregate gate를 /bin/bash로 실행하는 케이스는 Windows에 bash가 없어서, 구조 검사는 그대로 두고 실행 케이스만 win32에서 skip합니다. 훅 fixture 검사는 Git이 알려 준 Windows 경로 글자와 fixture 루트를 글자 그대로 비교하다 깨지던 것을, realpathSync.native로 실제 디렉터리를 맞춘 뒤 비교합니다. connect readiness 프로브는 Windows process.env를 펼치면 Path만 남는데 resolver는 env.PATH를 읽는 문제를, PATH 키를 정리한 뒤 명시적으로 넣어서 고칩니다. base는 dev이고, 제품 코드·types/config 분할·프리뷰 배포와는 무관합니다. 작성자는 로컬 테스트·typecheck·build를 안 돌렸고, 호스트 CI와 workflow_dispatch Windows 샤드가 게이트입니다.

라인 - tests/providers/provider-registry-parity.test.ts · apiRegistry.models 비교 — KEY_LOGIN_PROVIDERS는 deriveKeyLoginMap()이라 레지스트리 models를 그대로 복사합니다. 그래서 apiRegistry.models).toEqual(KEY_LOGIN_PROVIDERS["openai-apikey"].models)는 항상 참인 검사입니다. 진짜로 목록을 지키는 건 바로 위의 고정 id 배열 단언입니다. 옛 toHaveLength(11) 매직 넘버를 없앤 방향은 맞고, 새 줄 자체는 추가 보호가 아닙니다.

라인 - tests/ci-workflows/ci-scope-reduction.test.ts · hostRunsWorkflowShell — Windows에서는 emitter/gate 실행 케이스가 통째로 skip됩니다. 워크플로 본문은 ubuntu에서 bash로 돌아가므로 실제 릴리스 경로와는 맞고, Windows 러너에서는 그 스크립트 회귀를 이 스위트가 잡지 않습니다. 구조 단언은 계속 돕니다.

라인 - 검증 — 본문대로 로컬 스위트는 NOT RUN입니다. 이 글을 쓸 때 PR 체크(changes/hygiene 등)는 아직 pending이고, Windows 회귀는 작성자가 말한 workflow_dispatch Cross-platform CI로만 확인됩니다.

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

로스터 쪽 “항상 참인 equal” 줄을 두고 고정 배열만 믿어도 되는지, 아니면 equal 대신 고정 배열을 apiRegistry.models에도 직접 걸지. Windows에서 bash 실행 케이스를 skip하는 저장소 관례를 이 PR에도 그대로 둘지(같은 패턴의 다른 스위트와 맞춤).

너의 추천

네 고침 모두 원인과 맞고, 단언을 느슨하게 풀거나 타임아웃을 올린 흔적은 없습니다. 호스트 CI와 Windows를 도는 workflow_dispatch가 초록이면 머지해도 됩니다. 로스터 줄은 원하면 고정 배열을 registry에도 한 번 더 거는 정도로만 다듬으면 되고, 없어도 위의 고정 목록이 이미 지킵니다. 닫을 중복·무효 PR은 없고, types/config 분할·미리보기 배포 이야기는 이 PR과 무관합니다.

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

@github-actions

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

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.

1 participant