d3ro-voice/memory/handoff-archive/2026-04-13-0930.md

3.3 KiB

Session Handoff — 2026-04-13 09:30 (Phase V2-6 Admin CRM 고도화 완료)

From: macOS (yunchan-ui-MacBookPro) Last commit: 8467ecb — chore: project_status 갱신 — Phase V2-6 Admin CRM 고도화 완료 Branch: main Remote: https://gitlab.twentyoz.kr:8443/d3r0/voice.git Working tree: clean (pushed 대기)

이번 세션에서 한 일 (3 커밋)

Phase V2-6: Admin CRM 고도화 (34파일, +3,142줄)

  1. DB 마이그레이션 — audit_log(diff 포함), admin_note, super_admin role, RLS 확장, SQL RPC 3종
  2. Edge Functions 4개 — admin-users, admin-subscriptions, admin-payments, admin-audit-log + 공유 유틸 2개
  3. Swagger UI — 독립 정적 페이지 + OpenAPI 3.0 spec
  4. Admin CRUD 페이지 — 구독 생성/수정/삭제, role 변경, 감사로그 목록/상세
  5. recharts 차트 3종 — FeatureUsage StackedBar, DAU Line, TopUsers HorizontalBar
  6. 결제 이력 — DB + Payple API 병행 조회 (PaymentHistory 컴포넌트)
  7. 권한 체계 — super_admin만 위험 작업, admin은 조회 전용

배포 완료

  • DB migration 20260413000004_admin_enhancement.sql → Supabase 리모트 적용
  • Edge Functions 4개 배포 ACTIVE

현재 배포 상태

게이트 결과
desktop tsc --noEmit
admin tsc --noEmit
DB migration 적용
Edge Functions 8개 (기존 4 + 신규 4) ACTIVE
git commit (8467ecb)

서비스 현황

서비스 포트 상태
Electron + Vite :5173 실행 중
Web (Next.js) :3000 실행 중
Admin CRM (Next.js) :3001 실행 중
Ollama :11434 gemma4:e4b + qwen3:4b
Supabase remote Edge Functions 배포

다음 세션 우선순위

A) 브라우저 테스트 (V2-6 확인)

  • http://localhost:3001 접속 → 전체 기능 시각 확인
  • super_admin 설정: UPDATE auth.users SET raw_app_meta_data = raw_app_meta_data || '{"role":"super_admin"}' WHERE id = '...'
  • 구독 생성/수정/삭제 → 감사로그 기록 확인
  • 차트 렌더링 확인 (데이터 있으면)
  • Swagger UI 동작 확인

B) SSE 스트리밍 E2E 테스트

  • Voice Conversation에서 Premium 모델 → 토큰 단위 실시간 표시
  • TTS 파이프라인 연결

C) Payple 라이브 전환

  • 테스트 키 → 라이브 키 교체
  • Webhook URL 등록

D) 랜딩 페이지 업데이트

  • 결제 섹션 Payple로 업데이트
  • 가격 정책 반영

E) 코드 정리 백로그

  • supabase-server.ts / supabase-browser.ts 공통 패키지 추출
  • Database 타입에 RPC 함수 타입 추가

다음 세션 시작 시 확인

git pull origin main       # HEAD = 8467ecb
pgrep -lf "Electron\.app|next dev"
lsof -i :5173 -sTCP:LISTEN
lsof -i :3000 -sTCP:LISTEN
lsof -i :3001 -sTCP:LISTEN

Admin CRM 접속 방법

  1. http://localhost:3001 → Google OAuth 로그인
  2. super_admin 설정: UPDATE auth.users SET raw_app_meta_data = raw_app_meta_data || '{"role":"super_admin"}' WHERE id = '...'
  3. 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
  • recharts 2.15+ (apps/admin)
  • SoX 14.4.2 / faster-whisper base (CPU int8)