**task-2004 완료 보고** (dev3-team) **task-2004: InsuRo PWA 완성도 강화 (MW-1~3) 완료 보고** (16분 33초) **핵심 결과** 3개 항목 모두 구현 완료. (1) Supabase API(NetworkFirst, 5분) + 이미지(CacheFirst, 30일) 런타임 캐싱 전략 추가, globPatterns에 woff2 포함. (2) PushNotificationToggle 컴포넌트 신규 생성, unsubscribePush 함수 추가, CustomerChat에 토글 UI 통합. (3) localStorage 기반 24시간 dismiss 지속 + App.tsx 전역 표시. npm run build 성공, precache 137 entries, tsc 에러 0건. ## 수정 파일 목록 | 파일 | 변경 내용 | grep 검증 | 상태 | |------|-----------|-----------|------| | vite.config.ts | Supabase API + 이미지 runtimeCaching 추가, globPatterns에 woff2 추가 | grep "supabase-api-cache" OK, grep "images-cache" OK | verified | | src/components/PushNotificationToggle.tsx | Push 구독 토글 UI 컴포넌트 신규 생성 | grep "PushNotificationToggle" OK | verified | | src/lib/push-utils.ts | unsubscribePush 함수 추가 | grep "unsubscribePush" OK | verified | | src/pages/CustomerChat.tsx | PushNotificationToggle 통합, **발견/해결 이슈 3건** 1. **CustomerChat.tsx 초기 진단 에러** — 브리짓이 import/state 정리 시 일부 참조가 남아있는 것으로 진단되었으나, 실제 파일 확인 결과 정상 수정 완료. 빌드 성공으로 확인. 2. **globPatterns에 woff2 누락** — 웹폰트가 precache 대상에서 빠져 오프라인 시 폰트 깨짐 위험. woff2 추가로 해결. 3. **PwaInstallPrompt dismissed 상태 비영속** — 새로고침마다 배너 재표시. localStorage 기반 24시간 만료 dismiss 로직 추가.