feat(bootstrap): Whisper large-v3-turbo 기본 전환 + 온보딩 2단계 다운로드 진행률

- 기본 STT 모델 base → large-v3-turbo (6배 빠름, 1.6GB)
- 사이드카: /download, /download/status, /download/cancel + --models-dir
- LocalSTTService: downloadModel/cancelDownload + download-progress 이벤트
- IPC: 설계서 02의 stt:downloadModel/cancelDownload/downloadProgress 구현
- OnboardingModal: LLM(gemma4:e4b) → STT(turbo) 2단계 순차 다운로드 UI
- SettingsModal turbo 선택지 + settings.model.largeTurbo 12 locale
- 테스트: 모노레포 잔재 import 수정 (src/shared → @d3ro/core), 41/41 통과
This commit is contained in:
Yun Chan 2026-07-21 11:59:49 +09:00
parent 9dc8b26c11
commit 983c60cda2
27 changed files with 688 additions and 76 deletions

View file

@ -35,6 +35,8 @@ import type {
SetSTTModelParams,
SetSTTLanguageParams,
STTStatusChangedEvent,
DownloadModelParams,
DownloadProgressEvent,
HotkeyBinding,
SetHotkeyParams,
SetEnabledParams,
@ -251,11 +253,16 @@ const electronAPI = {
getActiveModel: () => invoke<string | null>(IPC_CHANNELS.STT.GET_ACTIVE_MODEL),
setModel: (params: SetSTTModelParams) =>
invoke<void>(IPC_CHANNELS.STT.SET_MODEL, params),
downloadModel: (params: DownloadModelParams) =>
invoke<void>(IPC_CHANNELS.STT.DOWNLOAD_MODEL, params),
cancelDownload: () => invoke<void>(IPC_CHANNELS.STT.CANCEL_DOWNLOAD),
getLanguage: () => invoke<string>(IPC_CHANNELS.STT.GET_LANGUAGE),
setLanguage: (params: SetSTTLanguageParams) =>
invoke<void>(IPC_CHANNELS.STT.SET_LANGUAGE, params),
onStatusChanged: (cb: (e: STTStatusChangedEvent) => void): Unsubscribe =>
on(IPC_CHANNELS.STT.STATUS_CHANGED, cb)
on(IPC_CHANNELS.STT.STATUS_CHANGED, cb),
onDownloadProgress: (cb: (e: DownloadProgressEvent) => void): Unsubscribe =>
on(IPC_CHANNELS.STT.DOWNLOAD_PROGRESS, cb)
},
// ── Hotkey ─────────────────────────────────────────────