3.9 KiB
3.9 KiB
Session Handoff — 2026-04-12 22:00 (Phase 3.3 SaaS 인프라 완결)
From: macOS (yunchan-ui-MacBookPro) Last commit:
3ef971e— chore: project_status 갱신 — Admin CRM 독립 프로젝트 완료 Branch:mainRemote:https://gitlab.twentyoz.kr:8443/d3r0/voice.gitWorking tree: clean (pushed)
이번 세션에서 한 일 (12 커밋)
Phase 3.2-B 배포 + 버그 수정
- Payple Edge Functions 3개 (
payple-checkout/webhook/manage) 배포 ACTIVE - DB migration
20260412000002_payple_billing.sql적용 - Electron
OPEN_BILLING: dev/prod URL 분기 (app.isPackaged) - CloudSyncService: stored token 없을 때
auth-changed nullemit 누락 수정
라이선스 UI 빅뱅
- LicenseTab/LicenseModal: LemonSqueezy 키 입력 제거 → Payple 구독 UI
useLicenseState훅: 공용 상태 관리 추출PREMIUM_MODEL_LIMITS: 3곳 중복 →@d3ro/core/constants단일 소스- i18n: LS 키 18개 삭제, 구독 키 13개 추가 (12 locale)
마스터플랜 4개 작업
- LemonSqueezy 코드 제거 — LicenseService ~150줄 삭제
- Payple 정기 갱신 크론 —
payple-renewEdge Function + GitHub Actions (매일 01:00 UTC) - 관리자 CRM —
apps/admin독립 Next.js 앱 (포트 3001) - SSE 스트리밍 —
sse-parser.ts+invokeFunctionStream()+chatStream()업그레이드
Admin CRM 독립화 + 버그 수정
apps/admin독립 프로젝트로 분리 (apps/web에서 제거)- RLS 재귀 참조 수정 →
app_metadata기반 - OAuth 콜백 쿠키 설정 수정
- middleware 추가 (Supabase 세션 갱신)
현재 배포 상태
| 게이트 | 결과 |
|---|---|
desktop tsc --noEmit |
✅ |
web tsc --noEmit |
✅ |
admin tsc --noEmit |
✅ |
| Payple Edge Functions 4개 | ✅ ACTIVE |
| DB migrations 4개 | ✅ 적용 |
| git push | ✅ |
서비스 현황
| 서비스 | 포트 | 상태 |
|---|---|---|
| Electron + Vite | :5173 | 실행 중 |
| Web (Next.js) | :3000 | 실행 중 |
| Admin CRM (Next.js) | :3001 | 실행 중 |
| Ollama | :11434 | gemma4:e4b + qwen3:4b |
| Supabase | remote | Edge Functions 배포 |
다음 세션 우선순위
A) Admin CRM 기능 강화
- 유저 role 변경 기능 (admin → user / user → admin)
- 구독 수동 변경 (tier 변경, 기간 연장)
- 사용량 차트 (recharts)
- 결제 이력 조회
B) SSE 스트리밍 E2E 테스트
- Voice Conversation에서 Premium 모델 선택 → 토큰 단위 실시간 표시 확인
- TTS 파이프라인과 연결 확인
C) Payple 라이브 전환 준비
- 테스트 키 → 라이브 키 교체
- Webhook URL 등록 (Payple 관리자)
- PAYPLE_SITE_URL 프로덕션 값 설정
D) 랜딩 페이지 (site/) 업데이트
- 결제 섹션 Payple로 업데이트
- 가격 정책 반영
E) 코드 정리 백로그
supabase-server.ts/supabase-browser.ts공통 패키지 추출- LicenseService의 오프라인 유예/재검증 로직 (LS 제거 후 불필요할 수 있음)
ActivateLicenseParams/Result타입 정리
다음 세션 시작 시 확인
git pull origin main # HEAD = 3ef971e
pgrep -lf "Electron\.app|next dev"
lsof -i :5173 -sTCP:LISTEN
lsof -i :3000 -sTCP:LISTEN
lsof -i :3001 -sTCP:LISTEN
# 죽어있으면
nohup npm run dev > /tmp/d3ro-desktop.log 2>&1 & disown
nohup npm --workspace=@d3ro/web run dev > /tmp/d3ro-web.log 2>&1 & disown
nohup npm --workspace=@d3ro/admin run dev > /tmp/d3ro-admin.log 2>&1 & disown
Admin CRM 접속 방법
http://localhost:3001→ Google OAuth 로그인- admin 권한 필요:
UPDATE auth.users SET raw_app_meta_data = raw_app_meta_data || '{"role":"admin"}' WHERE id = '...' - JWT 갱신을 위해 로그아웃 → 재로그인 필요
의존성 / 도구
- Node 22.22.2 / Python 3.13.13 / Supabase CLI 2.84.2
- Ollama 0.20.5 (gemma4:e4b 기본)
- Electron 33.4.11 / Next.js 15.5.14
- SoX 14.4.2 / faster-whisper base (CPU int8)