실시간 녹음 + 타임스탬프 메모 + STT 전사 + LLM 구조화 회의록 + PDF/MD 내보내기.
CaptionService 연동, 동시 사용 충돌 방지, 긴 회의 2-pass 요약 지원.
DB 2테이블, IPC 15채널, UI 3뷰(목록/녹음/상세), 12개 locale i18n.
- CommandsPage: 명령어 카드 클릭 → 활성 명령어 설정 (앰버 하이라이트)
- 상단에 ACTIVE COMMAND 표시
- 같은 카드 다시 클릭하면 해제
- 활성화 시 defaultLLMAction='custom' + activeInstructionId 저장
- VoiceModeService: action='custom'일 때 활성 명령어 프롬프트로 LLM 처리
- {{text}}를 전사 텍스트로 치환
- Settings LLM 탭: "기본 후처리 명령어" 드롭다운 추가
(없음/다듬기/번역/요약/문법교정/커스텀)
- VoiceModeService: defaultLLMAction='none'이면 LLM 스킵
(이전: 'refine' 아니면 무조건 스킵 → 수정)
- 사용자가 Settings에서 후처리 방식을 선택하면 모든 녹음에 적용
1. CommandsPage: handleSave/handleDelete에 실제 IPC 호출 연결
- instruction:create/update/delete 호출 추가
- 프리셋은 삭제 불가 (isBuiltin 체크)
2. Preload: instruction API 추가 (getAll/create/update/delete/reorder)
- 기존에 preload 브릿지가 없어서 렌더러에서 호출 불가했음
3. Dictionary → STT initialPrompt 주입
- VoiceModeService._transcribe에서 DictionaryService.getPromptHints() 호출
- 사용자 사전 단어를 Whisper initialPrompt로 전달
4. DictionaryPage: 편집 기능 추가
- 각 항목에 Edit 버튼 추가
- Add/Edit 공용 다이얼로그 (editId로 분기)
- Settings: 정보(About) 탭 추가 (버전, 기술 스택, 음성 엔진 정보)
- VoiceModeService: 전사 완료 시 PCM→WAV 파일 저장 ({userData}/recordings/)
- WAV 헤더 생성 (16kHz, 16bit, mono)
- HistoryService와 연동 가능 (audioLocalPath)
- docs/phases/phase-9.md 설계 문서 작성
- _handleRelease: 200ms 딜레이 제거 → 즉시 stopSession()
(딜레이 중 새 press가 와서 세션 꼬이는 버그 수정)
- _resetToIdle: 200ms 딜레이 제거 → 즉시 IDLE 복귀
(딜레이 때문에 다음 핫키가 안 먹히는 버그 수정)
- startSession: RecordingTip 표시 (recording 상태)
- 오디오 레벨: sendAudioLevelToTip → 웨이브 바 애니메이션
- stopSession: RecordingTip → thinking 상태 전환
- completeSession: RecordingTip 숨김 + 삽입 실패 시 ResultPopup 표시
- cancelSession: RecordingTip 즉시 숨김
- handleError: RecordingTip에 에러 표시 → 3초 후 자동 숨김 → idle 복귀
- CLAUDE.md: 핵심 병목 + Speakly 파이프라인 패턴 문서화
- LocalLLMService: Ollama REST API, 스트리밍 NDJSON 파싱, 5초 가용성 폴링
- 시스템 프롬프트: refine/translate/summarize/grammar/expand/custom 6개 액션
- VoiceModeService: 전사→LLM 후처리→텍스트 삽입, LLM 실패 시 원본 폴백
- LLM IPC 핸들러: status/models/process/cancel/serverUrl 8개
- StatusBar: Ollama 연결 상태 + 활성 모델 표시
- Preload: llm API 섹션 추가
- Bootstrap: llm-polling 초기화 단계 추가