d3ro-voice/CHANGELOG.md
Yun Chan 023714442d 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 모델 등 누락 항목 추가
2026-04-06 09:29:27 +09:00

5.4 KiB

Changelog

All notable changes to D3RO Voice will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[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