- memory/handoff-latest.md: 5차 사이클 스냅샷 (마지막 커밋, 한 일, 미완, Mac 셋업 체크리스트, 환경 차이, 의존성 버전, 검증 상태, 누적 통계, 참고 문서 링크) - memory/handoff-archive/ 디렉토리 생성 - .claude/skills/session-handoff/SKILL.md: save/resume 2모드 스킬 - save: git clean 확인 → 스냅샷 수집 → handoff-latest.md 작성 → 아카이브 → push - resume: git pull → 필수 문서 로드 → 환경 검증 → sanity build → 요약 보고 Mac에서 재개할 때: /session-handoff resume 실행
6.7 KiB
6.7 KiB
Session Handoff — 2026-04-10
From: Windows 11 Pro (Yun Chan PC) Last commit:
b386733— "feat(V2-5차): pgvector 시맨틱 검색 + chat 스트리밍 + doc 편집 + VoiceAction + Realtime + storage + 메모" Branch: main Remote: https://gitlab.twentyoz.kr:8443/d3r0/voice.git 총 push 대기: 20 commits (이전 origin/main 대비)
✅ 이번 세션에서 한 일 (1M 세션 5 사이클)
1차 사이클: V2-1 ~ V2-8 전체 1차 구현
- V2-1a/b/c/d — Monorepo 전환 (npm workspaces + Turborepo 설정, packages/core/ui/i18n 추출)
- V2-2 — Supabase 인프라 (12 테이블 + RLS + triggers + storage + 4 Edge Functions)
- V2-3 — Web App MVP (Next.js 15, 11 라우트)
- V2-4 — Desktop ↔ Supabase 동기화 (CloudSyncService, OAuth deep link, push only)
- V2-5 — macOS 빌드 (paths.ts 플랫폼 분기, electron-builder mac, entitlements, CI workflow)
- V2-6 — Mobile MVP (Expo, workspace 제외)
- V2-7 — 팀 기능 (web /teams)
- V2-8 — 결제 (Stripe Edge Functions + /billing)
2차 사이클: 고도화 A~D
- Settings CloudSyncSection 통합
- Web Sidebar 공유 layout (app/(app)/)
- 11개 locale 번역
- V2-4b pull 동기화 (history/dictionary)
- V2-8b Stripe webhook HMAC-SHA256 검증 + Customer Portal
- packages/ui-native (RN DS 컴포넌트)
3차 사이클: E~J
- V2-4b pull 확장 (meetings/memos/documents)
- api-client types interface→type 전환
- apps/mobile을 @d3ro/ui-native로 실제 교체
- V2-7b 이메일 invite flow (team_invites 테이블 + team-invite/accept Edge Functions + /accept-invite)
- Realtime transcripts 구독 (LiveTranscriptList)
- api-client 유닛 테스트 19 passed + web E2E 스캐폴딩
4차 사이클: K~P
- @supabase/ssr 0.10 + supabase-js 2.103 bump → Database 제네릭 완전 주입
- /chat 페이지 (ChatPanel + llm-proxy 호출)
- /knowledge 페이지 (knowledge_documents/chunks + tsvector + AddKnowledgeForm)
- team-invite Resend 이메일 발송
- Expo Push notification (push_tokens + send-push + expo-notifications)
- meetings/[id] AI 문서 생성 (GenerateDocumentButton 4종 템플릿)
5차 사이클: Q~V
- pgvector 활성화 + embedding(1536) + match_knowledge_chunks RPC + embed-chunks/search-knowledge Edge Functions + /knowledge 검색 UI
- /chat SSE 스트리밍 — llm-proxy가 Anthropic 스트림 프록시, chat-panel progressive 렌더
- DocumentEditor — MUI Dialog 기반 마크다운 편집/삭제
- /actions (VoiceAction 이식) — 자연어 → JSON 파싱 → 실행
- Desktop CloudSync Realtime — meetings/history/dictionary 변경 구독 + 자동 pullAll
- Record → Storage 업로드 + 자동 meetings INSERT
- MemoForm — 회의 상세에서 메모 작성
- 11개 locale nav.chat/knowledge/actions 키
🚧 미완 / 남은 것
사용자 액션 필요 (환경 작업)
- Supabase 프로젝트 생성 +
db push—docs/v2/phase-V2-2-setup.md - Google/GitHub OAuth Provider 등록
- Google Cloud STT API 키 + Anthropic API 키 + OpenAI API 키 (임베딩용)
- Stripe 계정 + Price ID + Webhook secret
- Resend API 키 (초대 이메일)
- Mac에서
npm run dev검증 —docs/v2/phase-V2-5-mac-guide.md
코드 레벨 후보 (6차 사이클)
- E2E 실제 실행 (Playwright browsers install)
- Mermaid 렌더 (DocumentEditor에 마크다운 미리보기)
- 회의 오디오 재생 (audio_storage_key → signed URL + 플레이어)
- Dashboard 위젯 차트 (회의 시간/문서 수 추이)
- Knowledge 파일 업로드 (PDF/docx 파싱)
- Voice Input (/actions에 마이크 아이콘)
- 다크모드 토글 (현재 다크 고정)
- 팀 대시보드 + 알림 센터
🔑 Mac에서 이어받을 때 즉시 확인할 것
# 1. Git pull
git clone https://gitlab.twentyoz.kr:8443/d3r0/voice.git # 또는 git pull
cd voice
git log --oneline -5 # b386733 까지 있는지
# 2. 시스템 의존성
brew install sox node@22 python@3.11
# Ollama 선택 (로컬 LLM)
brew install ollama && ollama pull qwen3:4b
# 3. npm workspace 설치
npm install
# 4. native 모듈 재빌드
npx @electron/rebuild@3 --version=33.4.11
# 5. 검증
cd apps/desktop && npx tsc --noEmit # desktop
cd ../web && npx tsc --noEmit && npm run build # web
cd ../.. && npx vitest run --root packages/api-client # tests
# 6. dev 실행
npm run dev # Electron 앱 뜸
# 별도 터미널: cd apps/web && npm run dev # Next.js 앱 http://localhost:3000
# 7. mobile (선택)
cd apps/mobile && npm install # workspace 제외라 별도
npm start # Expo dev
⚠️ 환경 차이 주의
- Windows 전용 코드 없음 — V2-5에서 플랫폼 감사 완료
- Mac: Accessibility/마이크/Apple Events 권한 첫 실행 시 다이얼로그
resources/sox/는 gitignored —bash scripts/install-sox.sh로 Homebrew sox 번들 (dist 빌드 시)resources/icons/에 실제 아이콘 파일 없음 —docs/v2/phase-V2-5-mac-guide.md§5 참고- Mac에서
npm run dist하려면 아이콘 + sidecar 빌드 필요 (python scripts/build-sidecar.py) apps/mobile/은 workspace 제외 — 별도cd apps/mobile && npm install
📦 의존성 버전
| 패키지 | 버전 |
|---|---|
| Node.js | 22.12.0 |
| @supabase/supabase-js | 2.103.0 |
| @supabase/ssr | 0.10.2 |
| Next.js | 15.5.14 |
| Expo SDK | ~51 |
| Electron | 33.4.11 |
| React | 19 |
| MUI | 7 |
| TypeScript | 5.7+ |
🧪 마지막 검증 상태
| 게이트 | 상태 |
|---|---|
| desktop typecheck | ✅ |
| desktop build | ✅ |
| web typecheck | ✅ |
| web build | ✅ (15 라우트) |
| api-client test | ✅ (19 passed) |
| mobile | workspace 제외 (별도 install 필요) |
📊 누적 통계
- 총 커밋: 20개 (V2 시작 이후)
- Edge Functions: 12개
- SQL 마이그레이션: 8개
- 웹 라우트: 15개
- 모바일 화면: 5개
- 패키지: 6개 (core/ui/ui-native/i18n/api-client + 앱)
- 테스트: 19 passed
- 코드 추가: ~15,000줄+
🔗 참고 문서
| 파일 | 내용 |
|---|---|
memory/project_status.md |
프로젝트 전체 현황 (SSOT) |
docs/v2/00-v2-master-plan.md |
V2 마스터 플랜 + 로드맵 |
docs/v2/phase-V2-5-mac-guide.md |
Mac 환경 전체 가이드 |
docs/v2/phase-V2-2-setup.md |
Supabase 배포 가이드 |
docs/v2/phase-V2-2.md |
Supabase 상세 설계 |
docs/v2/phase-V2-3.md |
Web App 설계 |
docs/v2/phase-V2-4.md |
데스크톱 동기화 설계 |
.claude/skills/session-handoff/ |
이 핸드오프 스킬 |
.claude/skills/implement-phase/ |
구현 스킬 |
🏁 Mac에서 재개 시 첫 명령
/session-handoff resume
이 skill이 memory/handoff-latest.md → project_status.md → CLAUDE.md를 순서대로 읽고, 환경 검증 후 다음 작업을 제안합니다.