Phase 7~8 구현: 테스트 + 빌드 + CI/CD + SoundEffect + AutoLaunch + UI 리디자인
- vitest 41개 단위 테스트 (HistoryService, DictionaryService, CustomInstructionService, VoiceModeService, D3ROError) - electron-builder.yml (NSIS, asarUnpack, extraResources) - .gitlab-ci.yml (lint, typecheck, test, build, release) - SoundEffectService: WAV 프리로드 + PowerShell 재생 + VoiceMode 연동 - AutoLaunchService: app.setLoginItemSettings + ConfigService 동기화 - TextInsertService: 간이 삽입 검증 (EditMonitor 경량) - 번들링 인프라: SoX 다운로드 스크립트, PyInstaller 빌드, 경로 해상도 유틸 - AudioCaptureService/LocalSTTService: 번들 경로 자동 감지 - 08-design-system.md 기반 MUI 테마 (다크+라이트+auto 테마 시스템) - 전체 UI 컴포넌트 리디자인: AppLayout, Dashboard, StatusBar, History, Dictionary, Commands, Settings - 효과음 WAV 생성: recording-start, recording-stop, error - EPIPE 에러 핸들링 추가
This commit is contained in:
parent
ed5541f769
commit
3f4d0c5828
40 changed files with 6034 additions and 580 deletions
44
CLAUDE.md
44
CLAUDE.md
|
|
@ -77,10 +77,46 @@ npm run typecheck # tsc --noEmit
|
|||
6. **녹음 UI**: 9개 웨이브 바, cos 분포 가중치, 100ms 애니메이션
|
||||
|
||||
## 현재 상태
|
||||
Phase: 6 완료 (Phase 1~6 + 3.5 전체 완료)
|
||||
마지막 완료: Phase 6 — 커스텀 명령어 + i18n (ko/en)
|
||||
다음 작업: Phase 7 — 테스트 + 빌드 + 배포 (electron-builder, CI/CD)
|
||||
차단 이슈: SoX 미설치, @nut-tree-fork/nut-js 포크 사용
|
||||
Phase: 8 완료 (Phase 1~8 + 3.5 전체 완료)
|
||||
마지막 완료: Phase 8 — UI 전면 리디자인 (08-design-system.md SSOT 적용)
|
||||
다음 작업: 전사 테스트 (npm run dev) → 온보딩 위저드
|
||||
차단 이슈: @nut-tree-fork/nut-js 포크 사용
|
||||
|
||||
### Phase 8 구현 내용
|
||||
- 08-design-system.md SSOT 기반 MUI 테마 전면 교체 (다크+라이트+auto 테마 시스템)
|
||||
- theme.ts: d3roPalette(SSOT), createD3ROTheme('dark'|'light'), getTheme(mode, prefersDark)
|
||||
- App.tsx: auto 모드 → 시스템 설정 따름 (나중에 커스텀 테마 확장 가능)
|
||||
- AppLayout: 앰버 LED, 라벨 스타일, 아이콘 색상, 네비게이션 앰버 선택
|
||||
- DashboardPage: hero 수치(28px mono), 카드 그리드, LED 상태 패널, 태그 시스템
|
||||
- StatusBar: LED 인디케이터 + 모노 폰트 + 핫키 힌트
|
||||
- HistoryPage: 카드 레이아웃, 앰버/퍼플 태그, 모노 메타데이터
|
||||
- DictionaryPage: 카드 레이아웃, 카테고리 태그, 사용 횟수 모노
|
||||
- CommandsPage: 카드 레이아웃, BUILT-IN/CUSTOM 태그
|
||||
- SettingsModal: 디자인 시스템 border/close 스타일
|
||||
|
||||
### Phase 7.5 구현 내용
|
||||
- SoundEffectService: WAV 프리로드, fire-and-forget, PowerShell SoundPlayer로 재생
|
||||
- AutoLaunchService: app.setLoginItemSettings, ConfigService 연동, syncWithConfig
|
||||
- TextInsertService: 간이 삽입 검증 (EditMonitor 경량), 클립보드 확인
|
||||
- VoiceModeService 효과음 연동: session-started(start), completed(stop), cancelled(cancel), error(error)
|
||||
- IPC: system:playSound/setSoundEnabled/isSoundEnabled, config:setAutoLaunch/setCloseToTray
|
||||
- Bootstrap: sound-effects, auto-launch 초기화 단계 추가
|
||||
- 효과음 WAV 파일: scripts/generate-sounds.js로 생성 (recording-start/stop, error)
|
||||
|
||||
### Phase 7 구현 내용
|
||||
- vitest 테스트 환경: vitest.config.ts, tests/setup.ts (electron/electron-log 모킹)
|
||||
- 테스트 헬퍼: tests/helpers/createTestDb.ts (in-memory SQLite + drizzle)
|
||||
- 단위 테스트 41개: HistoryService, DictionaryService, CustomInstructionService, VoiceModeService, D3ROError
|
||||
- electron-builder: electron-builder.yml (NSIS, asarUnpack, extraResources)
|
||||
- GitLab CI/CD: .gitlab-ci.yml (lint, typecheck, test, build, release)
|
||||
- 빌드 스크립트: pack, dist, test:unit 추가
|
||||
- 참고: better-sqlite3는 Electron용 빌드라 vitest에서 직접 사용 불가 → DB 서비스는 모킹 테스트
|
||||
- 번들링 인프라: SoX 다운로드 스크립트, PyInstaller 빌드 스크립트, 경로 해상도 유틸
|
||||
- src/main/utils/paths.ts: dev vs production 경로 자동 감지 (SoX, sidecar, sounds)
|
||||
- AudioCaptureService: 번들 SoX 경로 사용 (getSoxPath)
|
||||
- LocalSTTService: 번들 sidecar 경로 사용 (getSidecarCommand)
|
||||
- scripts/download-sox.ps1: SoX Windows 바이너리 다운로드 → resources/sox/
|
||||
- scripts/build-sidecar.py: PyInstaller → sidecar-dist/sidecar/sidecar.exe
|
||||
|
||||
### Phase 6 구현 내용
|
||||
- CustomInstructionService: electron-store 기반, 프리셋 5개 (번역/요약/전문리라이트/코드설명/자유프롬프트)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue