chore: 세션 핸드오프 — V2-7 완료
This commit is contained in:
parent
8af75a0a1e
commit
ffca07d120
2 changed files with 151 additions and 64 deletions
90
memory/handoff-archive/2026-04-13-0930.md
Normal file
90
memory/handoff-archive/2026-04-13-0930.md
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
# 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 함수 타입 추가
|
||||||
|
|
||||||
|
## 다음 세션 시작 시 확인
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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)
|
||||||
|
|
@ -1,25 +1,36 @@
|
||||||
# Session Handoff — 2026-04-13 09:30 (Phase V2-6 Admin CRM 고도화 완료)
|
# Session Handoff — 2026-04-13 (V2-7 완료)
|
||||||
|
|
||||||
> From: macOS (yunchan-ui-MacBookPro)
|
> From: macOS (yunchan-ui-MacBookPro)
|
||||||
> Last commit: `8467ecb` — chore: project_status 갱신 — Phase V2-6 Admin CRM 고도화 완료
|
> Last commit: `8af75a0` — feat: V2-7 Admin 콘솔 리디자인 + 3단계 권한 + SaaS 전환 + 코드 정리
|
||||||
> Branch: `main`
|
> Branch: `main`
|
||||||
> Remote: `https://gitlab.twentyoz.kr:8443/d3r0/voice.git`
|
> Remote: `https://gitlab.twentyoz.kr:8443/d3r0/voice.git`
|
||||||
> Working tree: clean (pushed 대기)
|
|
||||||
|
|
||||||
## 이번 세션에서 한 일 (3 커밋)
|
## 이번 세션에서 한 일 (50 files, +2168/-933)
|
||||||
|
|
||||||
### Phase V2-6: Admin CRM 고도화 (34파일, +3,142줄)
|
### 1. Admin CRM 콘솔 리디자인
|
||||||
1. **DB 마이그레이션** — audit_log(diff 포함), admin_note, super_admin role, RLS 확장, SQL RPC 3종
|
- 전체 페이지 D3RO Console 스타일 적용 (Overview, Users, Subscriptions, Audit Log + 모든 상세)
|
||||||
2. **Edge Functions 4개** — admin-users, admin-subscriptions, admin-payments, admin-audit-log + 공유 유틸 2개
|
- `console-theme.ts` 디자인 토큰 (C 색상, FONT, panelSx, tableSx, filterBtnSx, statusBadgeSx)
|
||||||
3. **Swagger UI** — 독립 정적 페이지 + OpenAPI 3.0 spec
|
- `globals.css` — 스캔라인, 그리드 패턴, 글로우, 커스텀 스크롤바
|
||||||
4. **Admin CRUD 페이지** — 구독 생성/수정/삭제, role 변경, 감사로그 목록/상세
|
- JetBrains Mono, 검정 배경, 라운드 패널, 오렌지 액센트
|
||||||
5. **recharts 차트 3종** — FeatureUsage StackedBar, DAU Line, TopUsers HorizontalBar
|
|
||||||
6. **결제 이력** — DB + Payple API 병행 조회 (PaymentHistory 컴포넌트)
|
|
||||||
7. **권한 체계** — super_admin만 위험 작업, admin은 조회 전용
|
|
||||||
|
|
||||||
### 배포 완료
|
### 2. 3단계 권한 체계
|
||||||
- DB migration `20260413000004_admin_enhancement.sql` → Supabase 리모트 적용 ✅
|
- DB: `profiles_role_check`에 `manager` 추가, RLS 7개 재작성
|
||||||
- Edge Functions 4개 배포 ACTIVE ✅
|
- Edge Functions 4개: `requireManager`/`requireAdmin` 3단계 분기 + 배포
|
||||||
|
- Frontend: `admin-guard.ts` 3단계 가드, RoleChangeDialog admin 제한
|
||||||
|
- super_admin 설정: `yunchan8804@gmail.com` = super_admin
|
||||||
|
|
||||||
|
### 3. 랜딩 페이지 SaaS 전환
|
||||||
|
- Pricing: 1회 결제 → 월간($9.9/$19.9) / 연간($99/$199) 토글
|
||||||
|
- 10개 언어 i18n 동기화 (pricing, FAQ, CTA)
|
||||||
|
- 다운로드 URL: placeholder (#) — 추후 교체
|
||||||
|
|
||||||
|
### 4. SSE 스트리밍 Premium LLM 연결
|
||||||
|
- VoiceConversationService: `_createChatStream()` — Premium/Local 라우팅 + fallback
|
||||||
|
|
||||||
|
### 5. 코드 정리
|
||||||
|
- Supabase 클라이언트 공통화 → packages/api-client (browser + server 팩토리)
|
||||||
|
- RPC 함수 타입 9개 추가 (types.ts Functions 섹션)
|
||||||
|
- callAdminApi 401 버그 수정 (getUser() 선행 토큰 갱신)
|
||||||
|
|
||||||
## 현재 배포 상태
|
## 현재 배포 상태
|
||||||
|
|
||||||
|
|
@ -27,9 +38,35 @@
|
||||||
|---|---|
|
|---|---|
|
||||||
| desktop `tsc --noEmit` | ✅ |
|
| desktop `tsc --noEmit` | ✅ |
|
||||||
| admin `tsc --noEmit` | ✅ |
|
| admin `tsc --noEmit` | ✅ |
|
||||||
| DB migration | ✅ 적용 |
|
| DB migration (20260413000005) | ✅ 적용 |
|
||||||
| Edge Functions 8개 (기존 4 + 신규 4) | ✅ ACTIVE |
|
| Edge Functions 4개 | ✅ 재배포 |
|
||||||
| git commit | ✅ (8467ecb) |
|
| git commit | ✅ (8af75a0) |
|
||||||
|
|
||||||
|
## 알려진 이슈
|
||||||
|
- `apps/web` teams/[id]/page.tsx: SelectQueryError 타입 에러 (기존 이슈, 이번 작업 무관)
|
||||||
|
- Stripe 레거시 컴포넌트 잔존 (apps/web/src/components/billing/checkout-button.tsx, portal-button.tsx)
|
||||||
|
|
||||||
|
## 다음 세션 우선순위
|
||||||
|
|
||||||
|
### A) Payple 라이브 전환
|
||||||
|
- Payple 가입 → 라이브 키 교체 (.env)
|
||||||
|
- Webhook URL 등록
|
||||||
|
- 라이브 환경 결제 테스트
|
||||||
|
|
||||||
|
### B) 다운로드 URL 확정
|
||||||
|
- GitHub/GitLab Releases 또는 자체 CDN
|
||||||
|
- 랜딩 페이지 Hero/Pricing/CTA 버튼 연결
|
||||||
|
- Auto-update 설정
|
||||||
|
|
||||||
|
### C) Web teams 타입 에러 수정
|
||||||
|
- teams/[id]/page.tsx SelectQueryError — team_members↔profiles 관계 설정
|
||||||
|
|
||||||
|
### D) Stripe 레거시 코드 제거
|
||||||
|
- checkout-button.tsx, portal-button.tsx 삭제
|
||||||
|
|
||||||
|
### E) E2E 테스트
|
||||||
|
- SSE 스트리밍 실제 동작 확인 (Supabase 로그인 → Premium LLM → 토큰 표시 → TTS)
|
||||||
|
- Admin CRM 3단계 권한 브라우저 테스트
|
||||||
|
|
||||||
## 서비스 현황
|
## 서비스 현황
|
||||||
|
|
||||||
|
|
@ -37,54 +74,14 @@
|
||||||
|--------|------|------|
|
|--------|------|------|
|
||||||
| Electron + Vite | :5173 | 실행 중 |
|
| Electron + Vite | :5173 | 실행 중 |
|
||||||
| Web (Next.js) | :3000 | 실행 중 |
|
| Web (Next.js) | :3000 | 실행 중 |
|
||||||
| Admin CRM (Next.js) | :3001 | 실행 중 |
|
| Admin CRM | :3001 | 실행 중 |
|
||||||
| Ollama | :11434 | gemma4:e4b + qwen3:4b |
|
| Landing (Vite) | :5174 | 실행 중 |
|
||||||
|
| Ollama | :11434 | gemma4:e4b |
|
||||||
| Supabase | remote | Edge Functions 배포 |
|
| 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 함수 타입 추가
|
|
||||||
|
|
||||||
## 다음 세션 시작 시 확인
|
|
||||||
|
|
||||||
```bash
|
|
||||||
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
|
- Node 22.22.2 / Python 3.13.13 / Supabase CLI 2.84.2
|
||||||
- Ollama 0.20.5 (gemma4:e4b 기본)
|
- Ollama 0.20.5 / Electron 33.4.11 / Next.js 15.5.14
|
||||||
- Electron 33.4.11 / Next.js 15.5.14
|
- @supabase/ssr 0.10.0 / recharts 2.15+
|
||||||
- recharts 2.15+ (apps/admin)
|
|
||||||
- SoX 14.4.2 / faster-whisper base (CPU int8)
|
- SoX 14.4.2 / faster-whisper base (CPU int8)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue