From daed9f90d5a3763b7120b3407f160f223bdc9aef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A4=EC=B0=AC?= Date: Sun, 12 Apr 2026 20:26:46 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20project=5Fstatus=20=EA=B0=B1=EC=8B=A0?= =?UTF-8?q?=20=E2=80=94=20=EB=A7=88=EC=8A=A4=ED=84=B0=ED=94=8C=EB=9E=9C=20?= =?UTF-8?q?4=EA=B0=9C=20=EC=9E=91=EC=97=85=20=EC=A0=84=EC=B2=B4=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- memory/project_status.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/memory/project_status.md b/memory/project_status.md index 901c09a..da4c383 100644 --- a/memory/project_status.md +++ b/memory/project_status.md @@ -1,8 +1,36 @@ # D3RO-VOICE 프로젝트 현황 -> 마지막 갱신: 2026-04-12 20:00 (라이선스 UI 빅뱅 + Phase 3.2-B 배포) +> 마지막 갱신: 2026-04-12 21:00 (마스터플랜 4개 작업 전체 완료) > 규칙 13: 작업 완료 즉시 이 파일 갱신 의무 +## 마스터플랜 4개 작업 (2026-04-12 21:00) ✅ + +### 작업 1: LemonSqueezy 코드 정리 (36031ac) +- LicenseService.ts ~150줄 삭제 (API 상수/인터페이스/메서드 4개) +- activate/deactivate 로컬 키 검증 전용으로 단순화 +- site/ taxNote: LemonSqueezy → Payple (10 locale) + +### 작업 2: Payple 정기 갱신 크론 (d3c2a43) +- `payple-renew` Edge Function: 만료 구독 자동 재결제 + 3회 실패 시 다운그레이드 +- migration: `subscriptions.renewal_failures` 컬럼 추가 +- GitHub Actions: 매일 01:00 UTC 스케줄 +- payple-webhook: 결제 완료 시 renewal_failures=0 리셋 + +### 작업 3: 관리자 CRM 웹페이지 (667c092) +- migration: `profiles.role` 컬럼 + admin RLS 정책 3개 +- `/admin` 대시보드: 총 유저, 유료 구독자, API 호출, 만료 예정 +- `/admin/users`: 검색/필터/페이지네이션 + 유저 상세 +- `/admin/subscriptions`: 상태 필터 +- `/admin/usage`: feature별 집계 (7/14/30일) +- Sidebar에 Admin 네비게이션 추가 + +### 작업 4: SSE 스트리밍 Premium (7467bd6) +- `sse-parser.ts`: Anthropic SSE 파서 (content_block_delta.text 추출) +- `CloudSyncService.invokeFunctionStream()`: raw fetch + ReadableStream +- `PremiumLLMService.chatStream()`: stream=true, 토큰 단위 yield + fallback + +--- + ## 라이선스 UI 빅뱅 리라이트 (2026-04-12 20:00) ✅ LemonSqueezy 키 입력 방식 → Supabase 구독 + Payple 결제 기반 UI로 전면 교체