---
name: project_insuro_newsletter_detect_company_filename_priority_task2918_merged
description: 소식지 보험사 자동감지 파일명 우선(task-2918 #196) 머지 — 배포·DB생명 데이터 이슈 HOLD
metadata:
  type: project
---

# 소식지 보험사 자동감지 파일명 우선 (#196 task-2918 260806) 머지

회장 실사용 버그: 소식지 업로드 시 보험사 자동선택 오검출. 파일명에 발행사명이 있는데 `_detect_company(text)`가 **본문만** 스캔해 매거진에 섞인 다른 회사명을 집음.

**수정(dev1-team/불칸, Lv.1 수술적 1파일)**: `_detect_company(text, filename="")` — 파일명(확장자 제거)에서 먼저 `COMPANY_PATTERNS` 매칭 → 매칭 시 그 회사 반환, 없으면 본문 폴백. 내부 `_match(source)` 헬퍼로 추출. `COMPANY_PATTERNS` 무변경·하위호환. 호출부 9곳(pdf_extract 텍스트레이어 5801 포함)에 인접 `_extract_title`과 동일 filename 배선. 신규 `server/tests/test_detect_company_filename.py` 5테스트.

**ANU 독립검증**: 클린 /tmp 워크트리(.env 무오염, CI parity) `pytest server/tests/` **1270 passed·0 failed**. 신규 5테스트 PASS. 실동작: `_detect_company(body, 'DB생명 위드유매거진 26.08.pdf')`=파일명 우선 작동(구동작 본문만=`한화손해보험` 오검출). CORS 사전실패=worktree .env 오염 확정(회귀 아님).

**머지**: PR #196 squash. main `8a7239b`→`fd5e91f`. 브랜치 삭제. 2026-08-06 21:57 KST. CI 전게이트 GREEN.

## ★ HOLD (회장 결정/go 대기)
1. **서버 재배포(systemd insuro-api) 미수행** — 배포해야 프로덕션 반영.
2. **★ DB생명 데이터 이슈(회귀 아님·범위 밖)**: `COMPANY_PATTERNS`에서 `"DB생명"`이 독립 키가 아니라 `"DB손해보험"` 키의 **패턴 값**으로 존재(main.py:4891 부근). 그래서 "DB생명 위드유매거진"은 파일명 우선이 작동해도 **여전히 `DB손해보험` 반환**(DB생명보험 ≠ DB손해보험, 별개사). **회장의 실제 예시가 이 배포만으로는 안 고쳐짐.** 동일 계열: "삼성생명"도 `"삼성화재"` 키 아래. **권장: DB생명/삼성생명 등 생보사 독립 키 추가 데이터 정비 task를 먼저 하고, 그 후 재배포**해야 회장 예시 완결. → 회장 승인 필요(COMPANY_PATTERNS 데이터 변경·생보/손보 계열 분리 판단).

단일소스 보고서: `memory/reports/task-2918.md`. 관련: [[project_insuro_newsletter_pdf_textlayer_region_extract_task2916]]
