Skip to content

test(scheduler): isolate remaining CI-only recovery calls - #1922

Merged
seonghobae merged 3 commits into
mainfrom
codex/complete-github-actions-scheduler-test-stubs-20260905
Sep 5, 2026
Merged

test(scheduler): isolate remaining CI-only recovery calls#1922
seonghobae merged 3 commits into
mainfrom
codex/complete-github-actions-scheduler-test-stubs-20260905

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

병합 결과 — 2026-09-05 10:52 UTC

사용자가 명시한 Actions chicken-and-egg 예외를 이 4파일 CI 복구에 적용해 squash 병합했습니다. 실제 merge commit은 f250638827f8252b0d9e5cb2601f4d333f96162f, parent는 7fcada597d5b79bdb14445f24322b2c9f6ed4b19입니다. 새 main과 검증한 PR head의 tree는 모두 cf0fab3e49a6b77743f3fccb4f3e3ca8a1f84b8c이며 파일 차이가 없음을 fetch 후 확인했습니다.

일반 보호 병합이나 hosted 승인 완료가 아닙니다. 새 head에서 생성된 중앙 품질 실행은 아직 queued이며, 새 main의 보안 검사도 대기 중입니다. 보호 규칙, 필수 검사 목록과 승인 조건은 변경하지 않았습니다. #1899와 #1900, #1898은 실제 main을 채택한 뒤 각각의 새 exact head를 검증해야 합니다.

수정 범위

Exact head: f7f11af21a085725524be015460d03ed873700bb. Base: 7fcada597d5b79bdb14445f24322b2c9f6ed4b19.

기존 #1896의 테스트 격리를 완성하고, 스케줄러 변경이 실제 중앙 품질 검사까지 도달하도록 같은 PR에서 보완합니다. #1899와 #1900의 공통 선행 수정입니다. Project #1 naruon Platform Roadmap에서 작업 중 In Progress로 추적했고, 병합 후 자동 전환된 Done을 브라우저에서 확인했습니다. 이 상태는 해당 PR의 병합 상태이며 전체 목표의 완료를 뜻하지 않습니다.

  • 두 fixture만 startup recovery 경계를 격리합니다. 기존 assertion과 production recovery·전용 회귀는 유지합니다.
  • 기존 단일 agent-review-runtime-quality-ci.yml에서 스케줄러 진입점·구현·회귀 테스트를 trigger와 suite selector 양쪽에 연결합니다.
  • 스케줄러 workflow 변경은 기존 queue 검사와 전체 review-repair 검사를 함께 선택합니다. coalescer는 queue만 선택합니다.
  • selector 테스트만 바뀌면 기존 unconditional contract 단계로 검증합니다. 전체 pytest를 추가 호출하지 않습니다. CHANGELOG 단독 수정은 runner를 시작하지 않습니다.
  • 새 workflow, job, action, runner, 권한, 공급자 경로, 모델 제한, 보안 예외는 추가하지 않습니다. production source와 의존성은 변경하지 않습니다.

재현과 검토

  1. 기존 main에서 GITHUB_ACTIONS=true로 두 fixture의 2 failed를 독립 재현했습니다. fake_runstdin 인자 불일치와 합성 head에 대한 실제 SHA 검증이 원인이었습니다.
  2. fixture-only 64bf199b468ecf271819c7739e9ce109822268d0는 일반/CI 환경 각각 2,883 passed / 1 skipped / 21 subtests passed였지만, 해당 테스트 경로가 trigger와 selector에 없어 PR 자체의 hosted full-pytest는 시작되지 않았습니다.
  3. 실제 Bash selector와 trigger를 검사하는 회귀는 4 failed / 10 passed로 누락을 재현했습니다. 중간 수정의 selector-only 전체 검사 호출은 독립 검토에서 불필요함이 드러났습니다. workflow 마지막 unconditional 단계를 늦게 읽은 primary의 오류였습니다.
  4. 현재 회귀는 trigger·review-repair·queue 결과를 7개 입력으로 검사합니다. 불필요한 전체 검사 호출을 1 failed / 15 passed로 다시 재현한 뒤 제거해 16 passed로 확인했습니다. 기존 unconditional self-test도 보존합니다. 최종 읽기 전용 검토에는 남은 actionable finding이 없습니다. 이 검토는 GitHub 승인 리뷰가 아닙니다.

현재 커밋 검증

  • 일반 전체: 2,890 passed / 1 skipped / 21 subtests passed, exit 0, 152.03초.
  • GITHUB_ACTIONS=true 전체 및 CI coverage: 2,890 passed / 1 skipped / 21 subtests passed, exit 0, 123.62초. 지정한 네 모듈의 **658 statements / 222 branches, 100%**이며 miss/partial branch는 0입니다.
  • 지정한 다섯 모듈의 interrogate: 100%, exit 0.
  • actionlint + ShellCheck: 출력 없음, exit 0. 전체 테스트 로그에 Timeout/Fatal/Warn/Denied 신호가 없습니다.
  • 미추적 uv.lock는 보존하고 commit에 넣지 않았습니다. 테스트는 기존 프로젝트 환경에서 실행했으며 새 clean-lock 설치 증거로 주장하지 않습니다.

중간 0996fdfa605b64397cc760445512df2c163e5c3a의 CI 실행은 검토 반영을 위해 중단(exit 130)했으므로 통과 근거로 쓰지 않습니다.

uv run pytest tests -q -ra
GITHUB_ACTIONS=true uv run python -m pytest -q -ra --cov=scripts.ci.pr_review_conflict_scope --cov=scripts.ci.pr_review_autofix_context --cov=scripts.ci.zdr_policy --cov=scripts.ci.contextual_orchestrator_review_policy --cov-branch --cov-fail-under=100
uv run python -m interrogate --fail-under 100 scripts/ci/pr_review_conflict_scope.py scripts/ci/pr_review_autofix_context.py scripts/ci/zdr_policy.py scripts/ci/contextual_orchestrator_review_policy.py scripts/ci/contextual_orchestrator_review_launcher.py

워크플로는 이전 도구 deadlock을 수정한 공식 actionlint source 011a6d15e749bb3f2d771eed9c7aa0e7e3e10ee7의 격리된 기존 빌드로 검사합니다. ShellCheck를 끄지 않으며, 새 의존성 설치나 시스템 도구 교체는 없습니다.

완료와 권한의 경계

로컬 검증, hosted Checks, 승인, 병합, 조직의 실제 적체 해소는 별개입니다. CodeRabbit rate-limit과 Devin trial-expired 표시는 승인이 아닙니다. 이 Mac에 LLVM 19 도구가 없어 건너뛴 검사는 Linux 실행 증거로 계산하지 않습니다.

사용자가 명시적으로 허용한 Actions chicken-and-egg 예외는 이 공통 CI 복구에 한해서만 검토합니다. 새 workflow 조건을 포함한 현재 head를 다시 검증한 뒤 판단하며, 일반 보호 병합이나 보안 finding 해소로 표시하지 않습니다. 규칙 삭제·완화, force push, self-approval, review dismissal은 하지 않습니다. 병합 시 실제 merge SHA와 남은 hosted 증거를 별도로 기록합니다.

근거: GitHub 기본 변수 계약, 이 PR의 정확한 workflow·테스트 diff. 원인과 수정이 플랫폼 환경 및 테스트 실행 경로에 한정되어 새 연구 논문이나 실험 프레임워크는 추가하지 않습니다.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 18 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review 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: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 70c25051-8eeb-4401-9bd0-e388f7a31e29

📥 Commits

Reviewing files that changed from the base of the PR and between 7fcada5 and f7f11af.

📒 Files selected for processing (4)
  • .github/workflows/agent-review-runtime-quality-ci.yml
  • CHANGELOG.md
  • tests/test_agent_review_runtime_quality_consolidation.py
  • tests/test_pr_review_merge_scheduler.py

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.

seonghobae and others added 2 commits September 5, 2026 19:37
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant