# 소식지 백엔드 스택 전체 배포 완료 (#task-2924 마커 블로커 수정 포함) — 260807

## 요약
회장 지시(2026-08-06 14:54 verbatim): **"전체 묶어서 배포에 문제없는지 codex cc 의견조율 후 문제 안되면 바로 실행까지 해"** — Codex GO 시 배포까지 durable 승인.
Codex CC 초판정 = NO-GO(블로커 1건: 표 폴백 `[[TABLE_REVIEW]]` 마커가 발행 본문/Q&A(extracted_text)로 누출) → 수정 위임 task-2924(헤르메스/dev1) → 완료.

ANU가 순서 B로 독립검증→병합→Codex 재확인(GO)→**서버 전용 재배포**까지 수행. **완료**(2026-08-07 00:32 KST).

## task-2924 수정 (surgical 3파일)
`server/pdf_extract.py`·`server/main.py`·`server/tests/*`. `[[TABLE_REVIEW]]` 마커를 본문(full_markdown→extracted_text)에서 **완전 제거**, 신호는 페이지 dict `needs_table_review:bool` + top-level `table_review_pages:list[int]`(0-idx) 메타 + `main.py`가 validation_flags에 결정론 **MED** 플래그(`rule=table_review_needed`)로 병합. `newsletter_review.py`(forbidden) 불변. MED라 HIGH-ack 발행 게이트(fail-closed, 금소법 P0-A) 무영향.

## ANU 독립검증 (PASS)
- diff 3파일, forbidden(newsletter_review/validation/src) 미변경
- clean /tmp worktree(CI parity) 회귀 **1299 passed / 0 failed**
- 소스 TABLE_REVIEW 0건 · 실데이터(DB생명 위드유매거진 26.08.pdf, 20965자 실추출) 본문 마커 누출 0 · p16(idx15) 메타만
- **Codex CC 재확인 VERDICT: GO** (블로커 해소·신호 보존·신규 블로커 없음·forbidden 미변경)

## 병합·배포
- PR **#200** squash merge (필수 8체크 GREEN 후 --admin) → main **f3e801b→81bfffe**
- 배포 = **백엔드 전용** (systemd 아님. `uvicorn main:app --port 8001` 수동 프로세스, cwd `server/`, `main.py:54` load_dotenv로 루트 `.env` 자체 로드 → 시크릿 env-inherit 불필요). repo ff-only 8a7239b→81bfffe → 구프로세스 SIGTERM → `setsid nohup uvicorn ...` 완전분리 재기동(신PID 3320093, 부모=systemd --user=지속) → `Application startup complete`
- 스모크: localhost:8001 + **api.insuro.biz/api/status 200** · 배포코드 실추출 마커 0 확증
- 라우팅=cloudflared named tunnel(PID 1655607) → api.insuro.biz. 프론트=insuro.biz(CF Pages).

## 안전 판정 (원자성)
델타(8a7239b→81bfffe) = #196(2918)·#197(2921)·#198(2922)·#199(2923)·#200(2924) 전부 **백엔드 추출/감지 로직**, src/(프론트) **0건**. task-2914(서버 HIGH-ack)·2915(프론트 layoutB)는 **이미 8a7239b에 포함**(페어링 불변) → "서버만 배포시 구프론트 차단" 경고 **해당없음** → CF Pages 배포 불필요.

## 상태 전환 (이전 HOLD 해소)
이 배포로 소식지 백엔드 스택 #194~#199 + #200 이 **모두 라이브**. 이전 메모의 "머지·라이브재배포 HOLD 회장 go 대기"(2916/2918/2921/2922/2923/2924) = **RESOLVED(deployed)**. 프론트 변경분(2907/2909/2911/2915 등)은 별도 CF Pages 이력, 이번 백엔드 배포와 무관.

관련: [[feedback_regression_verify_clean_worktree_not_polluted_260726]] · [[feedback_finish_task_verify_remote_head_push_260805]]
