# task-415 보고서: InsuRo Lovable Auth → Supabase Native Auth 전환

**팀**: dev1 (헤르메스)
**일시**: 2026-03-09
**프로젝트**: InsuRo (`/home/jay/projects/InsuRo/`)

## 작업 내용

InsuRo 프로젝트에서 `@lovable.dev/cloud-auth-js` 의존성을 완전히 제거하고, Google OAuth를 Supabase 네이티브 `signInWithOAuth`로 교체.

### 변경 파일 목록

| 파일 | 변경 유형 | 내용 |
|------|-----------|------|
| `.env` | 수정 | 새 Supabase URL/anon key로 교체 (zayhfjuwviporbzokudr) |
| `src/integrations/lovable/index.ts` | 삭제 | lovable auth 래퍼 전체 삭제 |
| `src/components/AuthForm.tsx` | 수정 | lovable import 제거, handleGoogleLogin을 supabase.auth.signInWithOAuth로 교체 |
| `package.json` | 수정 | `@lovable.dev/cloud-auth-js`, `lovable-tagger` 의존성 제거 |
| `package-lock.json` | 수정 | npm install로 lock 파일 갱신 (4개 패키지 제거) |
| `vite.config.ts` | 수정 | componentTagger import/plugin 제거, 미사용 mode 파라미터 정리 |
| `src/pages/MyPage.tsx` | 수정 | `lovable.app/namecard/...` → `insuro.app/namecard/...` 교체 |

### 미수정 파일 (의도적)
- `src/pages/AdminAIConfig.tsx`: lovable AI provider 옵션 — auth와 무관, 작업 지시에 따라 미수정
- `src/pages/AdminCrmConfig.tsx`: "Lovable AI (Gemini Flash)" 표시 — auth와 무관
- `src/integrations/supabase/client.ts`: 이미 env 변수에서 URL/key 읽음 — 수정 불필요

## 검증 결과

- `npm run build`: 성공 (0 에러, 7.12s)
- `npx tsc --noEmit`: 통과 (0 에러)
- lovable auth 관련 import 잔여: 0건 (AdminAIConfig의 AI provider 옵션만 남음 — 정상)
- npm install: lovable 관련 4개 패키지 정상 제거

## 커밋

- `e964d23` - [task-415] Lovable Auth → Supabase Native OAuth 전환

## 비고

- Google OAuth 실제 동작 테스트는 브라우저에서 수동 확인 필요 (Supabase + GCP 설정은 이미 완료 상태)
- 기존 `handleTestLogin` 함수 (test@test.com)는 원래부터 존재하던 코드로 미수정 (TS unused 경고 있으나 본 작업 범위 외)
- `npm audit`에서 18개 취약점 보고됨 — 기존 의존성 이슈로 본 작업과 무관

## QC 자동 검증 결과

```json
{
  "task_id": "task-415.1",
  "verified_at": "2026-03-09T18:40:24",
  "overall": "PASS",
  "summary": "2 PASS, 7 SKIP",
  "checks": {
    "file_check": "PASS",
    "data_integrity": "PASS",
    "api_health": "SKIP (서버 작업 아님)",
    "test_runner": "SKIP (테스트 디렉토리 미지정)",
    "tdd_check": "SKIP (Lv.1 설정 작업)",
    "schema_contract": "SKIP (workers 없음)",
    "pyright_check": "SKIP (TypeScript 프로젝트 — tsc --noEmit으로 별도 검증 완료)",
    "style_check": "SKIP (TypeScript 프로젝트)",
    "scope_check": "SKIP"
  }
}
```
