v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가
- CHANGELOG.md: Phase 1~13 + 랜딩 페이지 전체 변경 이력 - LICENSE: MIT - CONTRIBUTING.md: 개발 환경, 코드 표준, PR 프로세스 - SECURITY.md: 보안 정책, 취약점 보고 절차 - .editorconfig: 에디터 설정 통일 (indent, charset, eol) - .nvmrc: Node.js 20 - .gitattributes: line ending 정규화, 바이너리 선언, linguist 설정 - .gitignore: site/dist, Python, Whisper 모델 등 누락 항목 추가
This commit is contained in:
parent
5892125740
commit
023714442d
8 changed files with 337 additions and 0 deletions
126
CHANGELOG.md
Normal file
126
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to D3RO Voice will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2026-04-06
|
||||
|
||||
### Added
|
||||
|
||||
#### Core Pipeline (Phase 1-3)
|
||||
- Electron 33 + React 19 + MUI 7 + TypeScript strict mode
|
||||
- AudioCaptureService: SoX-based PCM16 16kHz mono microphone capture
|
||||
- LocalSTTService: faster-whisper Python sidecar (dual-condition flush pattern)
|
||||
- VoiceModeService: 9-state RecognitionState + 4-state AudioState dual state machine
|
||||
- HotkeyService: uiohook-napi global keyboard hooking (hold/toggle/double-press)
|
||||
- TextInsertService: clipboard save/set/Ctrl+V/restore via @nut-tree-fork/nut-js
|
||||
- RecordingTip popup: 9 wave bars with cosine distribution, thinking progress bar
|
||||
- ResultPopup: auto-close with mouse hover pause, copy button
|
||||
- Settings modal: General/Audio/STT/LLM tabs
|
||||
- System tray with close-to-tray support
|
||||
|
||||
#### Cursor History Popup (Phase 3.5)
|
||||
- Ctrl+Shift+V global shortcut opens recent transcription history at cursor position
|
||||
- Arrow key navigation, Enter to paste, 1-9 direct select, ESC dismiss
|
||||
- focusable: false maintains active app focus
|
||||
|
||||
#### LLM Integration (Phase 4)
|
||||
- LocalLLMService: Ollama REST API with NDJSON streaming
|
||||
- 6 system prompts: refine/translate/summarize/grammar/expand/custom
|
||||
- VoiceModeService LLM integration with original text fallback
|
||||
|
||||
#### Database & History (Phase 5)
|
||||
- better-sqlite3 + drizzle-orm (WAL mode)
|
||||
- HistoryService: CRUD + search + stats + 30-day retention policy
|
||||
- DictionaryService: custom words + STT initialPrompt injection
|
||||
- Dashboard with real statistics
|
||||
|
||||
#### Custom Instructions & i18n (Phase 6)
|
||||
- CustomInstructionService: 5 presets + user-defined CRUD
|
||||
- i18n system: ko/en with t() function and React context
|
||||
|
||||
#### Build & Test (Phase 7)
|
||||
- vitest: 41 unit tests (HistoryService, DictionaryService, VoiceModeService, etc.)
|
||||
- electron-builder: NSIS installer for Windows x64
|
||||
- GitLab CI/CD: lint, typecheck, test, build, release pipeline
|
||||
- SoX download script, PyInstaller sidecar build script
|
||||
|
||||
#### Speakly Pattern Enhancement (Phase 7.5)
|
||||
- SoundEffectService: WAV preload, fire-and-forget playback
|
||||
- AutoLaunchService: app.setLoginItemSettings
|
||||
- TextInsertService: basic insertion verification
|
||||
- VoiceModeService: sound effect integration on session events
|
||||
|
||||
#### UI Redesign (Phase 8)
|
||||
- Industrial instrument aesthetic (dark theme, amber #f25b29 accent)
|
||||
- Design system: 9 DS components (CrtDisplay, InstrumentPanel, Led, PhysicalButton, MetalCard, PhosphorText, MetalDial, ScreenPanel, ButtonGroup)
|
||||
- d3roPalette SSOT: all colors via CSS custom properties
|
||||
- HotkeyRecordModal: key combination recording UI
|
||||
- DashboardPage: feature-focused layout with stats + history + system status
|
||||
|
||||
#### Quality & UX (Phase 9)
|
||||
- 4-step onboarding wizard (welcome, mic, hotkey, Ollama)
|
||||
- Microphone test UI with level meter
|
||||
- Audio recording WAV file saving
|
||||
- MetalDial component with drag rotation
|
||||
- Ctrl+Shift+C command popup at cursor position
|
||||
- Dictionary inline editing
|
||||
- Ollama installation guide with nudging bubble
|
||||
- Real-time UI refresh on data changes
|
||||
|
||||
#### Killer Features (Phase 10)
|
||||
- CaptionService: 3-second chunk continuous transcription with overlay popup
|
||||
- VoiceCommandService: keyword-to-command matching engine (4 preset keywords)
|
||||
- ScreenContextService: active window detection + selected text capture
|
||||
- ChainService: sequential LLM command pipeline with step-by-step events
|
||||
- MemoService: memo tags DB table + tag CRUD + markdown export
|
||||
- Shared components: EmptyStateCard, SearchInput, PageHeader, HistoryEntryCard
|
||||
- Shared utilities: formatters.ts (formatDuration, getDateKey, formatNumber)
|
||||
|
||||
#### Monetization (Phase 11)
|
||||
- LicenseService: Free/Pro/Pro+ 3-tier system
|
||||
- Feature gating with 16 feature enums and tier-based access mapping
|
||||
- Daily usage quota tracking (Free: 20 dictation/day, 10 LLM/day)
|
||||
- LemonSqueezy API integration for license key activation
|
||||
- UpgradePromptModal, ProBadge, useProFeature hook
|
||||
- Settings License tab with tier comparison table
|
||||
|
||||
#### Pro Features (Phase 12)
|
||||
- FileTranscriptionService: ffmpeg PCM conversion, 30s chunk sequential STT
|
||||
- MeetingSummaryService: caption session LLM summarization
|
||||
- DictationTemplateService: CRUD + session state machine, 3 presets
|
||||
|
||||
#### Pro+ Premium (Phase 13)
|
||||
- VoiceConversationService: STT-LLM-TTS loop for voice conversations
|
||||
- TTSPlaybackService: Windows SAPI via PowerShell
|
||||
- RAGService: Ollama nomic-embed-text embeddings, SQLite vector storage, cosine similarity
|
||||
- KnowledgeBasePage: document management, indexing progress, Q&A UI
|
||||
- VoiceActionService: LLM JSON action plans, 6 presets, dangerous command blocking
|
||||
|
||||
#### Landing Page
|
||||
- Promotional website at `site/` directory
|
||||
- Vite + React 19 + Tailwind CSS
|
||||
- 4 design references integrated into D3RO brand identity
|
||||
- CRT screen effects, crosshair decorations, noise textures (CSS only)
|
||||
- 10-language i18n: en/ko/ja/zh/es/fr/de/pt/ru/vi
|
||||
- GitHub Pages auto-deployment workflow
|
||||
|
||||
### Technical Details
|
||||
- Total IPC channels: ~200+
|
||||
- Total services: 20+
|
||||
- Total error codes: 0-878
|
||||
- Design system components: 9
|
||||
- Supported languages (app): ko, en
|
||||
- Supported languages (landing): 10
|
||||
- Test count: 41 unit tests
|
||||
- Build target: Windows x64 NSIS installer
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Planned
|
||||
- macOS / Linux support
|
||||
- Additional Whisper model management UI
|
||||
- Cloud-optional backup (encrypted, opt-in)
|
||||
- Plugin system for custom pipelines
|
||||
Loading…
Add table
Add a link
Reference in a new issue