docs: 세션 래핑 — v0.1.0-alpha 배포 성공 + 설치 성공 기록 + 다음 작업

This commit is contained in:
yunchan8804 2026-04-15 23:06:51 +09:00
parent d48146438e
commit e947d90644

View file

@ -1,6 +1,82 @@
# D3RO-VOICE 프로젝트 현황
> 마지막 갱신: 2026-04-15 (배포 파이프라인 기반 구축 — 번들 설치러너 + GitLab CI)
> 마지막 갱신: 2026-04-15 (v0.1.0-alpha 설치파일 생성 성공 + 설치 성공 + 온보딩 모달 표시 확인)
## v0.1.0-alpha 배포 전체 흐름 (2026-04-15 night) ✅
### GitLab CI 파이프라인 확립
- `d3ro-voice-win-build` runner 등록(YUNCHAN-1 PC, shell/powershell executor, tags: windows+shell)
- `config.toml`에 machine PATH 고정 삽입(`C:\Program Files\Python311;...`) → Windows Store Python stub 우회
- Python 3.11.9 공식 설치(machine-wide)
- 파이프라인 성공 순서: `npm ci → pip install → build-sidecar.py(PyInstaller 232MB) → download-sox.ps1 → download-ollama.ps1 → electron-vite build → electron-builder NSIS`
### 해결된 빌드 이슈 타임라인
1. Python 미감지 → machine-wide 설치 + runner config.toml의 environment로 PATH 주입
2. SoX SourceForge 다운로드 차단 → 바이너리 직접 커밋(`apps/desktop/resources/sox/sox.exe` + DLL들)
3. Ollama 다운로드 한글 인코딩 파싱 실패 → `download-ollama.ps1` 메시지 전부 영문화
4. Invoke-WebRequest 대용량(~2GB) hang → `curl.exe` + 30분 타임아웃 + 진행률 바
5. `package.json``build.configFile` electron-builder v26에서 미지원 → `--config` 플래그로 전환
6. 모노레포 hoisting → electron 자동감지 실패 → `electronVersion: "33.3.0"` 명시
7. 아이콘 빈 폴더 자동 스캔 실패 → `directories.buildResources: build/`로 변경, `win/mac/linux.icon` 제거
8. GitLab artifacts 413 Too Large → `release/*/*.exe` + `latest.yml` + blockmap만 업로드
9. `expose_as`와 와일드카드 path 병행 불가 → `expose_as` 제거
### 해결된 설치러너 크래시
- **증상**: `D3RO Voice Setup 1.0.0.exe` 실행 직후 `System.dll` 0xc0000005 액세스 위반
- **근본 원인**: 설치 파일이 NSIS 2GB 한도 초과(Ollama 전체 ~2GB)
- **해결 3종**:
1. `download-ollama.ps1`에서 GPU 런타임(cuda_v11/cuda_v12/rocm_avx) 가지치기 → ~1GB 절감
2. `nsis.oneClick: true` + `allowToChangeInstallationDirectory: false` → electron-builder issue #7921 회피
3. `installer.nsh` 커스텀 include 비활성화(커스텀 `ReadRegDWORD`/`MessageBox`는 v0.1 이후 재검토)
### 온보딩 모달 버그(비크래시)
- `{model}`, `{status}`, `{message}` 플레이스홀더가 화면에 그대로 노출
- 원인: `@d3ro/i18n``resolveTranslation``{{var}}`(이중 중괄호) 포맷 요구
- 다음 태그 빌드부터 반영 (수정 완료, main push 완료)
### 현재 상태
- 설치파일 설치 성공
- 앱 기동 성공
- 온보딩 모달(gemma4:e4b 미설치 감지) 표시 확인
- **다음 검증**: 다운로드 시작 → 진행률 UI → 전사 E2E
### 다음 작업
1. 현재 설치 앱으로 "다운로드 시작" 누르고 gemma4:e4b pull 동작 확인
2. Alt+Shift+1 단축키로 전사 E2E 테스트 (SoX + 번들 sidecar + Whisper large-v3 자동 DL)
3. i18n 플레이스홀더 수정본 재배포용 v0.1.0-alpha.1 태그 (선택)
4. Whisper 모델 다운로드 진행률 UI (Phase 2 bootstrap)
5. 설정 페이지에 모델 선택지(gemma4:e2b / gemma3:4b fallback)
6. 아이콘 디자인 준비 후 `build/icon.png|.ico` 추가 + win.icon 복원
### 참고 파일
- `.gitlab-ci.yml` — 현재 Windows runner 단독 파이프라인
- `C:\GitLab-Runner\config.toml` — environment PATH 주입, 백업은 `config.toml.bak`
- `apps/desktop/resources/sox/` — 바이너리 직접 커밋(약 6MB)
## 배포 파이프라인 확장 (2026-04-15 PM) ✅
### 추가 변경
- **installer.nsh**: `NSISdl``aka.ms/vs/17/release/vc_redist.x64.exe` 사일런트 다운로드/설치. 실패 시 수동 설치 안내.
- **LocalLLMService.pullModel(modelId)**: Ollama `/api/pull` 스트리밍 구독 → `pull-progress` 이벤트 emit.
- **LLM IPC 확장**: `LLM.PULL_MODEL` 핸들러 + `LLM.PULL_PROGRESS` 이벤트 브로드캐스트. preload에 `llm.pullModel()`, `llm.onPullProgress()` 추가.
- **OnboardingModal 재작성**: `gemma4:e4b` 미설치 자동 감지(15초 간격 polling) → 진행률 모달(0~100%) → 성공 시 `config.onboardingCompleted=true` 저장.
- **i18n ko/en**: `onboarding.*` 키 14개 추가.
### 태그 푸시
- `v0.1.0-alpha` 푸시 완료 → GitLab `d3r0/voice` 파이프라인 트리거됨.
- CI 파이프라인: lint/typecheck/test (Linux docker) → package-windows (Windows runner, 태그 필요) → release-create (GitLab Releases 자동 생성).
### 다음 작업
1. **Windows GitLab Runner 등록** (이 PC, yunchan8804)
- gitlab-runner.exe 설치 + shell executor
- tags: `windows`, `shell`
- Python 3.11 권장(현재 3.13 — faster-whisper/ctranslate2 호환 확인 필요)
2. 첫 파이프라인 실행 관찰 + 실패 시 튜닝
3. Whisper large-v3 다운로드 진행률 UI (Bootstrap 2단계)
4. 설정 페이지에서 모델 변경(gemma4:e2b/gemma3:4b) 선택지 노출
## 배포 파이프라인 기반 구축 (2026-04-15) ✅