# 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