281 lines
11 KiB
Markdown
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.
|