Phase 9 완료: 전체 남은 기능 구현
1. RecordingTip: thinking 상태 전환 시 opacity 보장 2. 히스토리 오디오 경로: WAV 파일 경로를 DB에 기록 3. 마이크 테스트 UI: Settings Audio 탭에 TEST 버튼 + 레벨 바 4. 온보딩 플로우: 첫 실행 시 3단계 안내 (환영→마이크→핫키→완료) 5. MetalDial 컴포넌트: 동심원 그루브, 회전 포인터, LED 인디케이터
This commit is contained in:
parent
d7074e359d
commit
c338a19c90
7 changed files with 431 additions and 4 deletions
|
|
@ -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)}`)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue