# [Lv.1 fix] 소식지 보험사 자동감지 — 파일명 우선(본문 오검출 방지)

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "server/main.py"
    - "server/tests/**"
  forbidden_paths:
    - ".github/**"
    - "extension/**"
    - "src/**"
    - "server/migrations/**"
    - "server/newsletter_review.py"
    - "server/newsletter_cross_verify.py"
    - "server/newsletter_validation.py"
    - "server/pdf_extract.py"
  commands: ["pytest","python3","git"]
  merge_policy: "none"
  ttl_hours: 8
```
> ★ base=현 origin/main. 근거: 회장 실사용 — 보험사명이 파일에 있는데 자동감지가 틀림.

## 배경 (ANU 실측 확정)
`_detect_company(text)`(main.py:4959)가 **본문 텍스트만** 스캔해 `COMPANY_PATTERNS` 첫 매칭을 반환. 소식지 매거진 본문엔 여러 회사·상품명이 섞여 있어 **발행사가 아닌 다른 회사명을 잘못 집음**. 파일명("DB생명 위드유매거진 26.08.pdf")이 발행사 이름이라 가장 정확한데 감지에 안 쓰임. (회장: "보험사명은 파일명에 있어 신뢰"라 했으나 코드가 파일명을 안 봄 — 그 갭.)

## 작업 (surgical)
1. **파일명 우선 감지**: `_detect_company` 를 파일명 우선으로.
   - 시그니처: `def _detect_company(text: str, filename: str = "") -> str:` (기존 호출 하위호환 — filename 기본 "").
   - 로직: **filename 이 있으면 filename(확장자 제거) 에서 COMPANY_PATTERNS 매칭 먼저 시도 → 있으면 그걸 반환.** 없을 때만 기존 text 스캔 폴백.
   - (파일명·본문 둘 다 매칭 없으면 "" 반환 — 기존과 동일.)
2. **소식지 업로드 경로 호출부에 filename 전달**: 특히 pdf_extract 경로(main.py:5786 `_detect_company(markdown)`) 및 소식지(newsletter) 관련 감지 호출부들에 **그 자리의 filename/original_filename 을 넘김**(대부분 filename 변수가 이미 스코프에 있음 — `_extract_title(..., filename)` 바로 옆). 비-소식지 경로(filename 없는 곳)는 기본값 ""로 두어 회귀 0.

## 제약
- main.py + 테스트만. pdf_extract·review·validation·migration·src 불변. 기존 감지/업로드 회귀 0. COMPANY_PATTERNS 내용은 건드리지 말 것(감지 근거만 파일명 우선으로).

## 검증
- `pytest server/tests/` 회귀 0. 신규: 파일명에 회사명 있으면(예 "DB생명 위드유매거진.pdf") 본문에 다른 회사명(삼성생명 등) 섞여 있어도 **DB생명 반환** / 파일명에 회사 없으면 본문 폴백 / 둘 다 없으면 "" / filename 미전달 시 기존 동작(하위호환).
- ★ L1: 실제 "DB생명 위드유매거진 26.08.pdf" 로 감지 결과가 DB생명 나오는지 확인, 보고서 기록.

## 완료 (★ 순서 B)
- main.py + 테스트만. **dev6 금지** — dev1(헤르메스). 커밋 → push → **★ push 확인** → finish-task foreground 1회 → .done. ANU 독립검증·머지·배포는 ANU.

## goal_assertions (auto-generated)
- `pytest server/tests/`
