Phase 5 구현: SQLite DB + History/Dictionary 서비스 + UI

- DB: better-sqlite3 + drizzle-orm (history/dictionary/stats, WAL 모드)
- HistoryService: CRUD + 검색 + 통계 + 30일 보존 정책, 세션 완료 시 자동 저장
- DictionaryService: CRUD + 검색 + 사용 횟수 추적 + STT 프롬프트 힌트
- HistoryPage: 목록 + 검색 + 삭제 + 복사 + 페이지네이션
- DictionaryPage: 목록 + 검색 + 추가 다이얼로그 + 삭제
- DashboardPage: 실데이터 통계 (총/오늘 세션, 시간, 단어수, 연속일수)
- IPC: history/dictionary/stats 핸들러 + preload API
- Bootstrap: DB 초기화 (critical) + 이력 자동 저장 연동
This commit is contained in:
Yun Chan 2026-04-05 02:32:53 +09:00
parent 4a5cf6c819
commit 291e2a29d0
17 changed files with 3111 additions and 35 deletions

View file

@ -77,11 +77,21 @@ npm run typecheck # tsc --noEmit
6. **녹음 UI**: 9개 웨이브 바, cos 분포 가중치, 100ms 애니메이션
## 현재 상태
Phase: 4 완료
마지막 완료: Phase 4 — Ollama LLM 연동 (텍스트 다듬기, 번역, 스트리밍)
다음 작업: Phase 3.5 — 커서 위치 히스토리 팝업 또는 Phase 5 — TTS + DB
Phase: 5 완료
마지막 완료: Phase 5 — SQLite DB + HistoryService + DictionaryService + UI 완성
다음 작업: Phase 3.5 — 커서 위치 히스토리 팝업 또는 Phase 6 — 커스텀 명령어
차단 이슈: SoX 미설치, @nut-tree-fork/nut-js 포크 사용
### Phase 5 구현 내용
- DB: better-sqlite3 + drizzle-orm (history/dictionary/stats 테이블, WAL 모드)
- HistoryService: CRUD + 검색 + 통계 + 보존 정책(30일), 세션 완료 시 자동 이력 저장
- DictionaryService: CRUD + 검색 + 사용 횟수 추적 + STT 프롬프트 힌트
- History UI: 목록 + 검색 + 삭제 + 복사 + 페이지네이션
- Dictionary UI: 목록 + 검색 + 추가 다이얼로그 + 삭제
- Dashboard: 실데이터 통계 (총/오늘 세션수, 시간, 단어수, 연속일수)
- IPC: history, dictionary, stats 핸들러 + preload API
- Bootstrap: DB 초기화 단계 추가 (critical)
### Phase 4 구현 내용
- LocalLLMService: Ollama REST API 연동, 스트리밍 NDJSON 파싱, 가용성 폴링(5초)
- 시스템 프롬프트: refine/translate/summarize/grammar/expand/custom 6개 액션