Skip to content

test(windows): bound cold restore and injection process lifetimes - #3637

Merged
lidge-jun merged 4 commits into
devfrom
codex/win-restore-readiness
Sep 5, 2026
Merged

lidge-jun merged 4 commits into
devfrom
codex/win-restore-readiness

Conversation

@lidge-jun

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

Copy link
Copy Markdown
Owner

Summary

  • Stack child of test(windows): fix native Codex path identity and process readiness #3629: fix the remaining native restore subprocess timeout and two confirmed same-owner budget gaps.
  • Preserve all restore, busy/no-write, and competing-OFF assertions. Separate process deadlines from enclosing case deadlines, drain/reap the holder, and refuse a nested launch without enough remaining time.
  • Preserve labelled nested failures through discovery fallback. No production source changes or skipped tests.

Verification

  • Windows run33947540953 passed the original path/startup repairs but exposed one15s restore-child failure; this layer addresses that failure class.
  • Restore16s delayed child: old15s case red, repaired budgets green. Direct command timeout produced SIGKILL/ETIMEDOUT at45s; removing the limit defeated that proof. Voluntary exit7 and omitted-restore faults were detected.
  • Contender16s delay: old10s limit red, repaired limit retained busy/no-write. Write-before-lock and stale-ON production mutations failed the original behavioral assertions, then were restored.
  • Missing marker, forced holder cleanup, expired nested budget, nested exit7 and nested timeout were separately exercised with labelled failures.
  • Latest dev a537751 integrated and cascaded. Combined focused checks:90passed,0failed,446assertions across5files; typecheck passed. No local repository-wide suite.
  • Independent implementation review Noether PASS and fresh adversarial reviewer Lorentz PASS.
  • Final Windows run33949825505, exact head6ad49c8b5b01ff84c24cee4bb811eb23a3566e5f:6/6shards SUCCESS,18718pass84skip0fail across1091files. All5restore cases, held-lock busy/no-write, and competing-OFF discriminated skip passed. Windows keyring/npm-global checks also passed.
  • Latestdeva687eb735 adds only4devlog docs to integrateda53775103; no executable/test delta. Standard PR CI and gates are green. Maintainer explicitly authorized admin merge without a separate human approval; independent review is recorded, and this is an acknowledged ruleset bypass. macOS completion is not required.
  • Final commit39459adb2 only archives the unit and records per-shard green evidence; git diff --exit-code 6ad49c8b5 HEAD -- . ':(exclude)devlog' passed. The tested code is byte-identical. Parent test(windows): fix native Codex path identity and process readiness #3629 merged as0a9815cf745c4572a1329d6da8ab88f1e02fc940 and this child is now retargeted to dev. Prior standard CI was green on the exact tested code; new documentation-triggered checks are not being represented as already finished.

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.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/win-restore-readiness

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

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 58 / 80

이 PR은 Windows native fixture 스택의 자식입니다. base가 codex/win-native-fixture-fix(#3629 계열)이고, cold restore/injection에서 프로세스 수명과 케이스 예산을 분리해, 남은 15s restore-child 타임아웃과 same-owner budget 구멍을 막는 테스트 전용 수리입니다. production 소스 변경은 없고, draft입니다.

현재 dev HEAD a687eb735에는 이 레이어가 아직 없고, 부모 #3629도 열려 있습니다. 방향은 최근 Windows 안정화 트레인과 맞습니다. restore는 SPAWN_BUDGET_MS+SIGKILL로 커맨드 데드라인을 케이스 예산과 분리하고, competing OFF는 남은 시간이 부족하면 nested launch를 거절하며, holder는 drain/reap합니다. “예산만 늘려서 초록”이 아니라 timeout/거절을 직접 깨는 검증을 문서로 남긴 점이 좋습니다.

다만 스택 자식이라 #3629가 먼저 안정돼야 하고, 최종 게이트는 repaired-head Windows CI입니다. macOS는 메인테이너가 불필요로 명시했습니다. #3634(BelowNormal Offline)와는 다른 축입니다. 이쪽은 테스트 flake/예산이고, #3634는 실서비스 스케줄링입니다.

tests/codex-integration/codex-restore-app-rewrite.test.ts - restore child에 SPAWN_BUDGET_MS/SIGKILL을 붙입니다. 케이스 예산과 커맨드 예산이 섞이지 않게 유지하는 게 핵심입니다.
tests/codex-integration/codex-sync-api.test.ts - competing OFF가 remaining budget 부족 시 시작을 거절합니다. 가드가 빠지면 거절 단언이 무너지므로 회귀에 가드 생략 프로브가 필요합니다(문서 014에 있음).
tests/codex-integration/codex-inject-write-lock.test.ts - holder wait/SIGKILL reap로 contender 예산을 맞춥니다. busy/no-write 단언 보존이 머지 조건입니다.
base - dev가 아니라 부모 fixture 브랜치입니다. 부모 없이 단독 머지하면 안 됩니다.

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

너의 추천
draft 유지. 부모 #3629 Windows CI가 안정된 뒤 이 레이어를 얹고, repaired-head Windows CI 초록이면 스택으로 랜딩하세요. production 변경이 없으니 기능 버그(#3634)보다 낮은 급이지만, Windows flake를 막는 데는 바로 필요합니다.

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

@lidge-jun
lidge-jun marked this pull request as ready for review September 5, 2026 06:52
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 5, 2026 06:52
Base automatically changed from codex/win-native-fixture-fix to dev September 5, 2026 06:52
@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-05T06:55:35.920969Z 6ad49c8 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.

@lidge-jun
lidge-jun merged commit 6b85485 into dev Sep 5, 2026
24 of 25 checks passed
@lidge-jun
lidge-jun deleted the codex/win-restore-readiness branch September 5, 2026 06:54
agentHits pushed a commit to agentHits/opencodex that referenced this pull request Sep 17, 2026
…adiness

test(windows): bound cold restore and injection process lifetimes
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