# [Lv.3] 상담이력 삭제 기능 — 웹앱 삭제 버튼 + 서버 DELETE(Supabase 실삭제)

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "server/routes/consultation_history_v1.py"
    - "server/schemas/consultation_history_v1.py"
    - "server/tests/**"
    - "src/pages/CompositeDesign.tsx"
    - "src/components/composite/**"
    - "src/**/__tests__/**"
    - "tests/e2e/**"
  forbidden_paths:
    - "extension/**"
    - ".github/**"
    - "server/migrations/**"
  commands: ["pytest","npx vitest","npx tsc","git"]
  merge_policy: "none"
  ttl_hours: 16
```
> ★ merge_policy=none. base=현 origin/main. 신규 브랜치.

## 배경 (회장 결정)
"안 보이는 레코드가 Supabase에 쌓이면 낭비. 저장했으면 웹앱에서 보이고(→별도 처리됨), **사용자가 히스토리를 삭제할 수 있게 + Supabase에서 실제로 삭제**되게 하면 DB 낭비 없다." → 삭제 기능 신규.

## 작업
### 서버 — DELETE 엔드포인트
- `DELETE /api/insuro/consultation-history/v1/{record_id}` 신규(consultation_history_v1.py).
- 게이트: 기존 `_require_feature_enabled` + `_require_pilot_allowlisted`(회장 계정만) + **per-FA 소유 검증**(record.fa_account_id == 인증 fa_account_id, 아니면 404 — 타 FA 레코드 삭제 불가).
- **실삭제(hard delete)**: `DELETE FROM consultation_history_v1 WHERE id=record_id AND fa_account_id=<auth>` (service-role 클라, RLS 우회). 회장 요구="실제 삭제로 DB 낭비 0". (soft-delete deleted_at 아니라 행 제거.)
- 존재/소유 아니면 404. 성공 시 204 또는 `{ok:true, deleted_id}`.
- 계약 5-enum 준수(신규 에러코드 만들지 말고 기존 재사용). 감사: logger.info(삭제 id·fa) — PII 없이.

### 웹앱 — 삭제 UI
- `ConsultationHistoryView`(상담이력 카드)의 각 레코드에 **삭제 버튼**(휴지통 아이콘). 클릭 → **확인 다이얼로그**("이 상담이력을 삭제할까요? 되돌릴 수 없습니다") → `DELETE .../consultation-history/v1/{id}` 호출(기존 getAuthHeader).
- 삭제 성공 → 목록에서 제거(리렌더) + 토스트("삭제되었습니다"). 실패 → 에러 토스트.

## 제약
- 서버 스키마/마이그레이션 변경 최소(엔드포인트만). RLS 정책 추가 불필요(service-role 실삭제).
- consultation ingest/GET/조합 로직 회귀 0. 확장 불변.

## 검증
- 서버: `pytest` — DELETE per-FA 소유만(타 FA 404) / allowlist 밖 403 / 삭제 후 GET 부재 / 존재안함 404 / flag OFF 403. 기존 consultation 테스트 회귀 0.
- 웹앱: `npx tsc` 클린. 컴포넌트: 삭제버튼·확인다이얼로그·DELETE호출·목록제거. e2e(가능): 삭제 흐름.
- 실삭제 실증(단위/통합): DELETE 후 DB row 부재.

## 완료 (★ 순서 B)
- 변경 = allowed_resources 내부만. 확장/마이그레이션 불변.
- **dev6 금지** — dev1. 커밋 → push → finish-task **foreground 1회** → .done 즉시 종료. **background+wait 금지.** ANU 검증·Codex 검토·머지·CF Pages 배포는 ANU.

## goal_assertions (auto-generated)
- `npx tsc`
