# Changelog All notable changes to EVE - Personal Desktop Assistant will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] - v0.2.0 (Phase 2 - In Progress) ### Added - **Conversation Management System** - Save conversations with automatic title generation - Load previous conversations from history - Export conversations in multiple formats (Markdown, JSON, TXT) - Search and filter saved conversations - Rename conversations with inline editing - Tag conversations for organization - Conversation metadata (creation date, last updated, message count, model used) - Dedicated conversation browser UI with search functionality - **Advanced Message Formatting** - Full Markdown rendering with GitHub Flavored Markdown (GFM) support - Syntax highlighting for code blocks (15+ languages) - Copy-to-clipboard functionality for code blocks - LaTeX/Math equation rendering with KaTeX - Mermaid diagram support for flowcharts and diagrams - Styled tables, blockquotes, and lists - Properly formatted headings and emphasis - External links open in new tabs - Responsive code blocks with line numbers - **Text-to-Speech Integration** - ElevenLabs API integration for premium natural voices - Automatic fetching of all available ElevenLabs voices from API - Voice details display (name, accent, age, gender from labels) - Browser Web Speech API as free fallback - Per-message TTS controls (play/pause/stop) - Voice selection in settings with grouped categories - Automatic provider detection from voice selection - Automatic fallback when ElevenLabs unavailable - Audio playback queue management - Enable/disable TTS globally in settings - Visual playback indicators - Loading state for voice fetching - **Speed control** (0.25x - 4.0x) for all voices - **Stability control** (0-100%) for ElevenLabs voices - **Clarity/Similarity Boost control** (0-100%) for ElevenLabs voices - **Model selection** - Uses ElevenLabs Turbo v2.5 by default (configurable) - Real-time slider controls with live preview - Smart UI that disables ElevenLabs-only controls for browser voices - **🎧 Audio Conversation Mode** - Auto-play assistant responses in audio format - Text hidden by default (toggle to show/hide) - Quick mode toggle button above chat input - Settings panel toggle option - Visual indicators (pulsing icons, purple badges) - Animated audio playback feedback - Persists across sessions - Seamless listening experience like Alexa/Siri - **Speech-to-Text Integration** - Web Speech API integration for voice input - Push-to-talk and continuous listening modes - Live transcript display during recording - Multi-language support (25+ languages) - Visual feedback with animated microphone indicator - Error handling and user-friendly messages - Configurable language and mode in settings - Seamless integration with chat input - **File Attachment Support** - Drag & drop file upload - Support for images (JPEG, PNG, GIF, WebP, SVG) - Support for text files, code files, and PDFs - Image preview thumbnails - Text file content preview - File size validation (10MB limit) - File type validation - Multiple file attachments per message - Compact file preview in chat input - File context automatically included in AI conversation - Remove attachments before sending - **Dark Theme System** - Comprehensive dark mode support across all UI elements - Three theme options: Light, Dark, System - Automatic system theme detection - Persistent theme preference - Smooth theme transitions - Beautiful theme selector in settings - App defaults to dark theme - All components support both light and dark modes ### Technical Improvements - **New Dependencies** - `react-markdown` - Markdown rendering - `react-syntax-highlighter` - Code syntax highlighting - `rehype-katex` - LaTeX math rendering - `remark-math` - Math notation support - `remark-gfm` - GitHub Flavored Markdown - `mermaid` - Diagram rendering - `katex` - Math typesetting - `@elevenlabs/elevenlabs-js` - Text-to-speech API - **New Components** - `ConversationList` - Browse and manage saved conversations - `MessageContent` - Advanced markdown renderer - `CodeBlock` - Syntax-highlighted code display - `MermaidDiagram` - Mermaid diagram renderer - `TTSControls` - Text-to-speech playback controls - `VoiceInput` - Speech-to-text microphone control - `FileUpload` - Drag & drop file upload component - `FilePreview` - File attachment preview component - **New Libraries** - `elevenlabs.ts` - ElevenLabs API client - `tts.ts` - TTS abstraction layer with provider fallback - `stt.ts` - STT manager for Web Speech API - `fileProcessor.ts` - File processing and validation utilities - `theme.ts` - Theme management system with persistence - **New Hooks** - `useVoiceRecording` - React hook for voice input - **New Stores** - `conversationStore` - Conversation management with persistence ### Changed - Updated `ChatMessage` component to use advanced formatting and TTS controls for assistant messages - Enhanced `SettingsPanel` with comprehensive voice configuration (TTS + STT) and theme selection - Improved `ChatInterface` with save/load conversation buttons, voice input, and file attachments - Extended `settingsStore` with voice settings (voiceEnabled, ttsVoice, sttLanguage, sttMode) and theme preference - Extended `chatStore` to support file attachments on messages - Updated input placeholder to indicate voice and file attachment capabilities - Enhanced send button logic to support text, voice, and file-only messages - All UI components now fully support dark mode - App now initializes with dark theme by default ### Fixed - **TTS voice selection** - Selected voices now properly used instead of system default - **Async voice loading** - Browser voices now load correctly before selection - **Voice prefix handling** - `browser:` and `elevenlabs:` prefixes stripped correctly - **Default voice handling** - "default" no longer passed as literal string to TTS API --- ## [0.1.0] - 2025-10-05 ### Initial Release - Core Functionality #### Added - **Desktop Application Framework** - Tauri-based desktop application for Linux, macOS, and Windows - React + TypeScript frontend with modern UI - Vite for fast development and building - TailwindCSS for styling with dark mode support - **AI Chat Interface** - Clean, modern chat interface with message history - Real-time streaming responses from AI models - Message timestamps and role indicators - Conversation management with clear history option - **OpenRouter Integration** - Unified access to multiple AI models through OpenRouter API - Support for latest models (2025): - OpenAI: GPT-4o, GPT-4o Mini, GPT-4 Turbo, GPT-3.5 Turbo - Anthropic: Claude 3.5 Sonnet, Claude 3 Opus/Sonnet/Haiku - Google: Gemini Pro 1.5, Gemini Flash 1.5 - Meta: Llama 3.1 (405B, 70B, 8B) - Mistral: Mistral Large, Mixtral 8x22B - DeepSeek: DeepSeek Chat - Easy model switching via dropdown selector - Model-specific parameter configuration - **Character/Personality System** - Modular system prompts for different AI personalities - 6 pre-built character presets: - **EVE Assistant** - Professional personal assistant (default) - **EVE Creative** - Brainstorming and creative partner - **EVE Technical** - Coding and technical expert - **EVE Researcher** - Research and analysis specialist - **EVE Tutor** - Patient learning coach - **EVE Casual** - Friendly conversational partner - Custom character option for user-defined personalities - Character selector in header for quick switching - First-person conversational style across all characters - **Local-First Configuration** - Automatic API key loading from `.env` file - Secure backend command for environment variable access - No manual configuration needed for local development - Smart settings UI that hides fields when keys are loaded from environment - **Settings Panel** - API key management (OpenRouter, ElevenLabs) - Character/personality customization - Model parameter controls: - Temperature (0.0 - 2.0) - Max tokens (100 - 4096) - Persistent settings storage using Zustand - **State Management** - Zustand for global state management - Persistent storage for user preferences - Separate stores for chat and settings - Type-safe state updates #### Fixed - **Linux Graphics Compatibility** - Disabled hardware acceleration to fix blank window issue on Linux - Resolved GBM buffer creation errors - Added `WEBKIT_DISABLE_COMPOSITING_MODE=1` environment variable - **API Key Loading** - Fixed working directory issue for `.env` file detection - Backend now correctly navigates to project root to find `.env` - Supports both development and production environments - **Content Security Policy** - Added development CSP to allow localhost Vite server - Resolved blank window issues in Tauri WebView - **Build System** - Created placeholder icons for development - Added missing Rust dependencies (`dotenvy`) - Installed `cross-env` for cross-platform environment variables - Fixed all Rust compiler warnings #### Technical Details - **Frontend Stack** - React 18.2 - TypeScript 5.3 - Vite 5.1 - TailwindCSS 3.4 - Zustand 4.5 - Lucide React (icons) - **Backend Stack** - Tauri 1.5 - Rust (latest stable) - dotenvy 0.15 (environment variable management) - serde (serialization) - **Development Tools** - ESLint for code quality - Prettier for code formatting - TypeScript for type safety - Hot module replacement for fast development ### Known Issues - DevTools can be accessed via F12 but don't auto-open - Some markdown formatting warnings in documentation (cosmetic only) - WebKit deprecation warnings (harmless, no impact on functionality) --- ## Upcoming in v0.2.0 See [ROADMAP.md](ROADMAP.md) for planned features and improvements.