# InsuRo 소식지 교차검증 다페이지 codex 타임아웃 해소 (#191 task-2913, 260806)

**상태**: PR #191 open, ANU 독립검증 완료, admin squash 머지 시도 → CI 3체크(ci·diagnostic·e2e-test) pending → watcher cron `AA6AFCB3`(2026-08-06 14:11 KST)에 자동머지 위임. 다른 필수체크(guard·qc·merge-safety·lock-in·hidden-path·cancel-kill·gemini-gate) 전부 pass.

## 문제
codex 교차검증 2차 엔진이 다페이지 PDF(최대 6장 이미지)를 단일 codex exec 호출로 전달할 때 `DEFAULT_TIMEOUT=60s`로 타임아웃 → `cross_model_unavailable` 오탐. 회장 ABL생명 PDF 숫자 오독을 codex가 못 잡은 근본 원인.

## 수정 (surgical, `server/newsletter_cross_verify.py` + 테스트만)
- `DEFAULT_TIMEOUT` 60→240s (task-2912 백그라운드화로 업로드 응답과 무관)
- codex 전달 전 이미지 긴 변 ≤1400px 다운스케일(`_downscale_image`, PIL 지연 import), 어떤 예외든 `(src_path, False)` graceful fallback·원본 불변, temp `finally` 정리
- codex 검출 로직·argv·플래그 스키마·extractive-only·확증편향 프롬프트 전부 불변

## ANU 독립검증 (clean worktree /tmp/verify-2913)
- 변경 2파일, forbidden 경로 0
- 현 main(4d3aa8f) 머지충돌 0 (task-2912=main.py, task-2913=cross_verify.py 무중첩)
- pytest `test_newsletter_cross_verify.py` **37 passed** (기존 32 회귀0 + 신규 5)
- 브랜치 base가 b9a9429였어서 up-to-date 정책 위반 → origin/main 병합·push(031ce2c)로 해소

## 후속
- watcher AA6AFCB3가 CI GREEN 시 admin squash 머지 → 최종 main 커밋 회장 보고
- 프로덕션 파이프라인 미배선 상태(task-2904 참조) → live 영향 0. 배선·서버배포는 별도 phase(회장 승인 대기)
