From ed5541f769725d898faaa09edb9fd26bcd3b1abe Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Sun, 5 Apr 2026 03:00:19 +0900 Subject: [PATCH] =?UTF-8?q?Phase=207.5=20=EB=AC=B8=EC=84=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80:=20Speakly=20=ED=8C=A8=ED=84=B4=20=EB=B3=B4=EA=B0=95?= =?UTF-8?q?=20=EA=B3=84=ED=9A=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 리뷰 결과(8.5/10) 기반 누락 항목 보강 계획: - SoundEffectService (효과음 재생) - AutoLaunchService (시스템 시작 자동 실행) - EditMonitor (삽입 검증) - 오디오 뮤트 연동 - I18nService 메인 프로세스 연동 --- CLAUDE.md | 2 ++ docs/phases/phase-7.5.md | 52 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 docs/phases/phase-7.5.md diff --git a/CLAUDE.md b/CLAUDE.md index c350d45..fd34784 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -151,6 +151,7 @@ Phase: 6 완료 (Phase 1~6 + 3.5 전체 완료) - Phase 5: TTS + 히스토리/사전 DB - Phase 6: 커스텀 명령어 + 설정 UI 고도화 - Phase 7: 테스트 + 빌드 + 배포 +- Phase 7.5: Speakly 패턴 보강 (SoundEffect, AutoLaunch, EditMonitor, 오디오 뮤트) ## 설계 문서 (구현 시 반드시 참조) @docs/design/00-master-architecture.md @@ -167,6 +168,7 @@ Phase: 6 완료 (Phase 1~6 + 3.5 전체 완료) @docs/phases/phase-5.md @docs/phases/phase-6.md @docs/phases/phase-7.md +@docs/phases/phase-7.5.md ## RE 노하우 (패턴 적용 근거) @docs/re-findings/speakly-architecture.md diff --git a/docs/phases/phase-7.5.md b/docs/phases/phase-7.5.md new file mode 100644 index 0000000..03d0d72 --- /dev/null +++ b/docs/phases/phase-7.5.md @@ -0,0 +1,52 @@ +# Phase 7.5: Speakly 패턴 보강 + 누락 기능 구현 + +## 목표 +Phase 1~6 리뷰에서 발견된 Speakly 패턴 누락 항목을 보강하여 충실도를 8.5/10 → 9.5/10으로 올린다. + +## 태스크 + +### 7.5.1 SoundEffectService 구현 +- `src/main/services/SoundEffectService.ts` +- 녹음 시작/종료/에러/취소 효과음 재생 (fire-and-forget) +- WAV 파일 프리로드 (메모리 캐싱) +- ConfigService `soundEnabled` 연동 +- VoiceModeService에서 세션 시작/완료/취소/에러 시 호출 +- 효과음 파일: `resources/sounds/recording-start.wav`, `recording-stop.wav`, `error.wav` + +### 7.5.2 AutoLaunchService 구현 +- `src/main/services/AutoLaunchService.ts` +- `app.setLoginItemSettings({ openAtLogin: true/false })` +- ConfigService `autoLaunch` 연동 +- Settings UI의 "시작 시 자동 실행" 토글 연동 + +### 7.5.3 EditMonitor (삽입 검증) — 선택적 +- TextInsertService에 삽입 후 검증 로직 추가 +- 삽입 후 100ms 대기 → 클립보드 내용 확인으로 간이 검증 +- 실패 시 재시도 1회 → 실패 알림 +- Speakly의 5초 대기 + UI Automation은 Phase 8+에서 검토 + +### 7.5.4 앱별 삽입 전략 오버라이드 — 선택적 +- 특정 앱(터미널, IDE 등)에서 Ctrl+V 대신 Ctrl+Shift+V 등 사용 +- ConfigService에 `insertOverrides: Record` 추가 + +### 7.5.5 VoiceModeService 오디오 뮤트 연동 +- Speakly 패턴: 녹음 중 시스템 오디오 음소거 (마이크 피드백 방지) +- 녹음 시작 → 500ms 후 시스템 뮤트 +- 녹음 종료 → 이전 뮤트 상태 복원 → 100ms 후 종료 효과음 + +### 7.5.6 I18nService 메인 프로세스 연동 +- 설계서 01의 II18nService 구현 +- 메인 프로세스에서도 i18n 사용 (에러 메시지 등) +- ConfigService `language` 변경 시 런타임 전환 + +## Speakly RE 참조 +- SoundEffectService: fire-and-forget 패턴, 프리로드 +- AutoLaunchService: app.setLoginItemSettings +- EditMonitor: 삽입 후 5초 대기 → UI Automation 텍스트 재캡처 +- Audio Mute: muteSystemAudio/unmuteSystemAudio + wasMutedBeforeRecording + +## 완료 조건 +- [ ] 녹음 시작/종료 효과음 재생 +- [ ] 시스템 시작 시 자동 실행 설정 가능 +- [ ] 삽입 후 간이 검증 작동 (선택) +- [ ] Speakly 패턴 충실도 9.5/10 이상