# [Lv.2] 생보 캡처 실패 수정 — content script의 chrome.storage.session 접근 허용(setAccessLevel)

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "extension/background.js"
    - "extension/content.js"
    - "extension/__tests__/**"
  forbidden_paths:
    - "src/**"
    - "server/**"
    - ".github/**"
    - "extension/manifest.json"
  commands: ["npx vitest","git"]
  merge_policy: "none"
  ttl_hours: 8
```
> ★ merge_policy=none. base=현 origin/main. 이 접근권한 수정만.

## 배경 (회장 실사용 — 근본원인 확정)
"생보 이어서 캡처" 클릭 시 "지금은 캡처할 수 없어요. 잠시 후 다시 시도해주세요"(=default/예외 캐치 메시지). 진단 결과:
- 콘솔 실측: 생보 화면 셀렉터 정상(요소 true·보험사 9·담보 4·보험료셀 36) → **스크랩/감지는 정상**.
- 근본원인: `content.js`의 `saveLifeMatrixToSession`(454행)·`getLifeMatrixFromSession`(459행)이 **content script에서 `chrome.storage.session`을 직접 호출**하는데, **chrome.storage.session 기본 access level = TRUSTED_CONTEXTS(백그라운드 전용)라 content script 접근 시 예외** → `captureLifeMatrixToSession` 예외 → `.catch` → default 메시지.
- `setAccessLevel` 호출이 확장 어디에도 없음(확인됨).

## 작업 — 세션 스토리지 접근권한 허용
- `extension/background.js`(service worker) **초기화 시점에**:
  ```js
  chrome.storage.session.setAccessLevel({ accessLevel: 'TRUSTED_AND_UNTRUSTED_CONTEXTS' });
  ```
  추가. **top-level(SW 로드 시) + `chrome.runtime.onInstalled` + `chrome.runtime.onStartup`** 세 지점에 안전하게 배치(SW 재기동/설치/브라우저 시작 모두 커버). try/catch로 감싸 구형 브라우저/미지원 시 무해.
- 이후 content.js의 session get/set이 정상 동작 → 생보 캡처 누적·저장 성공.
- **PII 참고**: 세션엔 consent PII blob도 있으나 content.js는 이미 고객명 등 PII를 다루는 확장 자체 코드(페이지가 아님)라 신뢰 경계 내. 접근 허용 무방.

## (선택) 에러 문구 개선
- `captureLifeMatrixToSession`의 `.catch`가 default("지금은 캡처할 수 없어요")로 빠지지 않게, 실제 예외 시 원인 로깅(console.error) 추가하면 향후 진단 용이(선택, 범위 최소).

## 제약
- background.js(setAccessLevel) + 필요시 content.js 만. 손보 캡처·저장·consent·egress·taint-guard·life_matrix 라우팅 로직 불변. manifest 불변("storage" 권한 이미 있음).

## 검증
- `npx vitest run extension/__tests__/` 전체 PASS(회귀 0). 신규/갱신: background가 setAccessLevel(TRUSTED_AND_UNTRUSTED_CONTEXTS) 호출(top-level/onInstalled/onStartup) 단위검증. 기존 session storage 흐름 회귀 0.
- (수동 실증은 ANU가 새 빌드로 확인: 생보 이어서 캡처 → "생보 담보를 이어서 담았어요" 성공 메시지.)

## 완료 (★ 순서 B)
- 변경 = extension/ (+테스트) 만. manifest·src·server 불변.
- **dev6 금지** — dev2. 커밋 → push → finish-task **foreground 1회** → .done 즉시 종료. **background wait 금지.** ANU 검증·머지·새 확장빌드 전송은 ANU.
