11 KiB
11 KiB
Changelog
All notable changes to EVE - Personal Desktop Assistant will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased] - v0.2.0 (Phase 2 - Complete)
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
-
System Integration
- System tray icon with show/hide/quit menu
- Global keyboard shortcut (Ctrl+Shift+E / Cmd+Shift+E) to show/hide EVE
- Desktop notifications for assistant responses
- Minimize to tray option (close button hides instead of quitting)
- Left-click tray icon to toggle window visibility
- Settings UI for notification and minimize-to-tray preferences
- Quick access from anywhere via global hotkey
-
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 renderingreact-syntax-highlighter- Code syntax highlightingrehype-katex- LaTeX math renderingremark-math- Math notation supportremark-gfm- GitHub Flavored Markdownmermaid- Diagram renderingkatex- Math typesetting@elevenlabs/elevenlabs-js- Text-to-speech API
-
New Components
ConversationList- Browse and manage saved conversationsMessageContent- Advanced markdown rendererCodeBlock- Syntax-highlighted code displayMermaidDiagram- Mermaid diagram rendererTTSControls- Text-to-speech playback controlsVoiceInput- Speech-to-text microphone controlFileUpload- Drag & drop file upload componentFilePreview- File attachment preview componentWindowControls- Window minimize to tray handler
-
New Libraries
elevenlabs.ts- ElevenLabs API clienttts.ts- TTS abstraction layer with provider fallbackstt.ts- STT manager for Web Speech APIfileProcessor.ts- File processing and validation utilitiestheme.ts- Theme management system with persistencesystemIntegration.ts- Desktop notification utilities
-
New Hooks
useVoiceRecording- React hook for voice input
-
New Stores
conversationStore- Conversation management with persistence
Changed
- Updated
ChatMessagecomponent to use advanced formatting and TTS controls for assistant messages - Enhanced
SettingsPanelwith comprehensive voice configuration (TTS + STT), theme selection, and system integration settings - Improved
ChatInterfacewith save/load conversation buttons, voice input, file attachments, and notification support - Extended
settingsStorewith voice settings (voiceEnabled, ttsVoice, sttLanguage, sttMode), theme preference, and system integration settings (notificationsEnabled, minimizeToTray) - Extended
chatStoreto 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
- Updated Tauri configuration to enable system tray, global shortcuts, and notifications
- Updated Rust backend with system tray menu, global shortcut registration, and notification command
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:andelevenlabs: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
.envfile - 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
- Automatic API key loading from
-
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=1environment variable
-
API Key Loading
- Fixed working directory issue for
.envfile detection - Backend now correctly navigates to project root to find
.env - Supports both development and production environments
- Fixed working directory issue for
-
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-envfor 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 for planned features and improvements.