Files
eve-alpha/docs/releases/CHANGELOG.md
Aodhan Collins 8d6a681baa Phase 2 complete.
2025-10-06 21:08:25 +01:00

281 lines
11 KiB
Markdown

# 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 - 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 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
- `WindowControls` - Window minimize to tray handler
- **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
- `systemIntegration.ts` - Desktop notification utilities
- **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), theme selection, and system integration settings
- Improved `ChatInterface` with save/load conversation buttons, voice input, file attachments, and notification support
- Extended `settingsStore` with voice settings (voiceEnabled, ttsVoice, sttLanguage, sttMode), theme preference, and system integration settings (notificationsEnabled, minimizeToTray)
- 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
- 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:` 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.