Phase 9 완료: 전체 남은 기능 구현

1. RecordingTip: thinking 상태 전환 시 opacity 보장
2. 히스토리 오디오 경로: WAV 파일 경로를 DB에 기록
3. 마이크 테스트 UI: Settings Audio 탭에 TEST 버튼 + 레벨 바
4. 온보딩 플로우: 첫 실행 시 3단계 안내 (환영→마이크→핫키→완료)
5. MetalDial 컴포넌트: 동심원 그루브, 회전 포인터, LED 인디케이터
This commit is contained in:
Yun Chan 2026-04-05 12:16:39 +09:00
parent d7074e359d
commit c338a19c90
7 changed files with 431 additions and 4 deletions

View file

@ -137,16 +137,21 @@ async function initVoiceMode(): Promise<void> {
voiceMode.on('session-completed', ({ session, finalText }) => {
soundEffect.play('recording-stop')
// 이력 저장
// 이력 저장 (오디오 파일 경로 포함)
try {
const { join } = await import('path')
const { app } = await import('electron')
const wordCount = finalText.split(/\s+/).filter((w) => w.length > 0).length
const audioPath = join(app.getPath('userData'), 'recordings', `${session.id}.wav`)
getHistoryService().create({
originalText: session.transcription || finalText,
polishedText: session.processedText,
mode: session.mode === 'hands-free' ? 'dictation' : session.mode,
status: 'completed',
duration: (Date.now() - session.startedAt) / 1000,
wordCount
wordCount,
audioLocalPath: audioPath,
})
} catch (error) {
logger.warn(`Failed to save history: ${error instanceof Error ? error.message : String(error)}`)