Phase 2 complete.

This commit is contained in:
Aodhan Collins
2025-10-06 21:08:25 +01:00
parent 66749a5ce7
commit 8d6a681baa
26 changed files with 3163 additions and 164 deletions

201
docs/SCRIPTS.md Normal file
View File

@@ -0,0 +1,201 @@
# EVE Development Scripts
Quick reference for all development scripts in the EVE project.
## Running the Application
### Linux/macOS
```bash
./run.sh
```
### Windows
```powershell
.\run.ps1
```
**What it does:**
- Checks for `.env` file (creates from template if missing)
- Checks for `node_modules` (installs if missing)
- Starts the Tauri development server with hot-reload
- Shows the app window with live code updates
**Stop the server:**
- Press `Ctrl+C` in the terminal
- Or run the kill script (see below)
## Stopping the Application
### Linux/macOS
```bash
./kill.sh
```
### Windows
```powershell
.\kill.ps1
```
**What it does:**
- Finds all EVE-related processes (Tauri, Vite, Cargo, etc.)
- Kills process trees cleanly
- Frees up ports (5173, 1420, etc.)
- Removes lock files
**When to use:**
- When `Ctrl+C` doesn't fully stop the server
- When you get "port already in use" errors
- When processes are stuck in the background
- Before switching branches or rebuilding
## Setup Scripts
### Linux/macOS
```bash
./setup.sh
```
### Windows
```powershell
.\setup.ps1
```
**What it does:**
- Detects your operating system
- Checks for Node.js, Rust, and dependencies
- Installs missing components (with permission)
- Sets up `.env` file
- Installs npm packages
- Verifies installation
See [DEV_SETUP.md](./setup/DEV_SETUP.md) for detailed setup documentation.
## npm Scripts
You can also use npm commands directly:
```bash
# Start development server (same as run.sh)
npm run tauri:dev
# Start frontend only (browser, no desktop app)
npm run dev
# Build for production
npm run tauri:build
# Build frontend only
npm run build
# Lint code
npm run lint
# Format code
npm run format
# Preview production build
npm run preview
```
## Common Workflows
### Start Fresh Development Session
```bash
./run.sh
# App starts with hot-reload enabled
```
### Quick Restart
```bash
./kill.sh && ./run.sh
# Stops everything, then starts fresh
```
### Clean Build
```bash
./kill.sh
rm -rf node_modules src-tauri/target
npm install
npm run tauri:build
```
### Port Conflict Resolution
```bash
# If you get "address already in use" error
./kill.sh
# Then start again
./run.sh
```
### Switch Branches
```bash
# Stop app first to avoid conflicts
./kill.sh
git checkout feature-branch
npm install # Update dependencies if needed
./run.sh
```
## Troubleshooting
### "Permission denied" (Linux/macOS)
```bash
chmod +x run.sh kill.sh setup.sh
```
### Scripts don't find processes (Linux/macOS)
The kill script uses `pgrep`, `lsof`, and `ps`. These should be available on most systems. If not:
```bash
# Ubuntu/Debian
sudo apt install procps lsof
# macOS (usually pre-installed)
# No action needed
```
### PowerShell execution policy (Windows)
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
### Processes still running after kill script
```bash
# Nuclear option - find and kill manually
ps aux | grep -E "vite|tauri|eve"
kill -9 <PID>
# Or on Windows
tasklist | findstr /i "node cargo"
taskkill /F /PID <PID>
```
### Script starts but app window is blank
This is usually a graphics driver issue on Linux. The project includes a fix:
```bash
# The run script already includes this, but you can also run:
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri:dev
```
## Tips
1. **Use `run.sh` for daily development** - it's simpler than typing the full npm command
2. **Use `kill.sh` liberally** - it's safe and thorough
3. **Run `setup.sh` once** - when first setting up or after major changes
4. **Check `.env` file** - if the app shows "Configure Settings" on startup
## Script Locations
All scripts are in the project root:
```
eve-alpha/
├── run.sh # Start app (Linux/macOS)
├── run.ps1 # Start app (Windows)
├── kill.sh # Stop app (Linux/macOS)
├── kill.ps1 # Stop app (Windows)
├── setup.sh # Setup environment (Linux/macOS)
└── setup.ps1 # Setup environment (Windows)
```
---
**Last Updated**: October 6, 2025

View File

@@ -1,10 +1,10 @@
# 🎉 Phase 2 - Major Features Complete!
# 🎉 Phase 2 - Complete!
**Date**: October 5, 2025, 3:00am UTC+01:00
**Status**: 83% Complete (5/6 features) ✅
**Version**: v0.2.0-rc
**Date**: October 6, 2025, 1:30am UTC+01:00
**Status**: 100% Complete (6/6 features) ✅
**Version**: v0.2.0
## ✅ Completed Features (5/6)
## ✅ Completed Features (6/6)
### 1. Conversation Management ✅
**Production Ready**
@@ -84,45 +84,42 @@
---
## 🚧 Remaining Feature (1/6)
### 6. System Integration ✅
**Production Ready**
### 6. System Integration
**Estimated**: 8-10 hours
- ✅ Global keyboard shortcut (Ctrl+Shift+E / Cmd+Shift+E)
- ✅ System tray icon with menu
- ✅ Desktop notifications for responses
- ✅ Minimize to tray functionality
- ✅ Left-click tray to toggle visibility
- ✅ Settings UI for preferences
**Planned**:
- [ ] Global keyboard shortcuts
- [ ] System tray icon
- [ ] Desktop notifications
- [ ] Quick launch hotkey
- [ ] Minimize to tray
- [ ] Auto-start option
**Impact**: Professional desktop app experience, quick access from anywhere.
**User Impact**: Professional desktop app experience, quick access from anywhere, background operation.
---
## 📊 Statistics
### Code Metrics
- **Files Created**: 19
- **Files Modified**: 10
- **Lines of Code**: ~4,500+
- **Components**: 8 new
- **Libraries**: 4 new
- **Files Created**: 21
- **Files Modified**: 14
- **Lines of Code**: ~5,000+
- **Components**: 9 new
- **Libraries**: 5 new
- **Hooks**: 1 new
- **Dependencies**: 8 new
### Time Investment
- **Total Time**: ~8 hours
- **Features Completed**: 5/6 (83%)
- **Remaining**: ~8-10 hours
- **Total Time**: ~12 hours
- **Features Completed**: 6/6 (100%)
- **Phase 2**: Complete!
### Features by Category
- **Conversation Management**: ✅ Complete
- **Message Enhancement**: ✅ Complete
- **Voice Features**: ✅ Complete (TTS + STT)
- **File Handling**: ✅ Complete
- **System Integration**: ⏳ Pending
- **System Integration**: ✅ Complete
---
@@ -134,6 +131,12 @@ Users can now interact with EVE through:
2. **Voice** (microphone - 25+ languages)
3. **Files** (drag & drop images/documents/code)
### System-Level Integration
- **Global Hotkey**: Press Ctrl+Shift+E (Cmd+Shift+E on Mac) from anywhere to show/hide EVE
- **System Tray**: EVE lives in your system tray for quick access
- **Notifications**: Get notified of responses even when EVE is hidden
- **Background Operation**: Minimize to tray keeps EVE running in background
### Improved Message Display
- Beautiful code syntax highlighting
- Mathematical equations rendered perfectly
@@ -224,14 +227,14 @@ Phase 2 features are production-ready and can be used immediately:
## 🔜 Next Steps
### Option 1: Complete Phase 2 (Recommended)
Implement system integration features for a complete v0.2.0 release.
### Option 1: Release v0.2.0 (Recommended)
Tag and release v0.2.0 with all Phase 2 features complete.
### Option 2: Start Phase 3
Move to knowledge base, long-term memory, and multi-modal features.
### Option 3: Testing & Polish
Focus on bug fixes, performance optimization, and user testing.
Focus on bug fixes, performance optimization, and user testing before Phase 3.
---
@@ -251,9 +254,9 @@ EVE is now a **production-ready desktop AI assistant** that rivals commercial al
---
**Version**: 0.2.0-rc
**Phase 2 Completion**: 83%
**Next Milestone**: System Integration
**Estimated Release**: v0.2.0 within 1-2 sessions
**Version**: 0.2.0
**Phase 2 Completion**: 100% ✅
**Next Milestone**: Phase 3 - Knowledge Base & Memory
**Status**: Ready for Release
**Last Updated**: October 5, 2025, 3:00am UTC+01:00
**Last Updated**: October 6, 2025, 1:30am UTC+01:00

View File

@@ -4,7 +4,7 @@ All notable changes to EVE - Personal Desktop Assistant will be documented in th
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] - v0.2.0 (Phase 2 - In Progress)
## [Unreleased] - v0.2.0 (Phase 2 - Complete)
### Added
@@ -81,6 +81,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- 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
@@ -112,6 +121,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- `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
@@ -119,6 +129,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- `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
@@ -129,14 +140,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### 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
- 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

308
docs/setup/DEV_SETUP.md Normal file
View File

@@ -0,0 +1,308 @@
# Development Environment Setup Guide
This guide covers setting up your development environment for EVE using the automated setup scripts.
## Quick Start
### Linux/macOS
```bash
# Make script executable (if not already)
chmod +x setup.sh
# Run setup script
./setup.sh
```
### Windows
```powershell
# Run in PowerShell
.\setup.ps1
```
## What the Setup Script Does
The automated setup script will:
1. **Detect your operating system**
- Linux (Debian/Ubuntu, Fedora/RHEL, Arch)
- macOS
- Windows
2. **Check for required dependencies**
- Node.js (v18+)
- Rust (latest stable)
- npm or pnpm
- Platform-specific system libraries
3. **Install missing dependencies** (with your permission)
- Guides you through installing Node.js and Rust
- Installs system dependencies for Tauri
- Sets up build tools
4. **Configure your environment**
- Creates `.env` file from template
- Installs npm dependencies
- Verifies installation
5. **Provide next steps**
- Instructions for adding API keys
- Commands to start development
## Prerequisites
### All Platforms
Before running the setup script, ensure you have:
- **Internet connection** (for downloading dependencies)
- **Administrator/sudo access** (for installing system packages)
- **~500MB free disk space** (for dependencies)
### Platform-Specific
#### Linux
- `curl` or `wget` (usually pre-installed)
- `sudo` access for installing system packages
#### macOS
- Xcode Command Line Tools (script will prompt if needed)
- Homebrew (optional, but recommended)
#### Windows
- PowerShell 5.1+ (included in Windows 10+)
- Internet Explorer or Edge (for WebView2)
## Manual Installation
If you prefer manual setup or the automated script encounters issues, follow these steps:
### 1. Install Node.js
**Linux/macOS:**
- Download from: https://nodejs.org/
- Or use nvm: https://github.com/nvm-sh/nvm
**Windows:**
- Download from: https://nodejs.org/
- Run the installer and follow prompts
Verify installation:
```bash
node -v # Should show v18.0.0 or higher
npm -v # Should show npm version
```
### 2. Install Rust
**All platforms:**
```bash
# Linux/macOS
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows (PowerShell)
# Download and run: https://win.rustup.rs/x86_64
```
Verify installation:
```bash
rustc --version
cargo --version
```
### 3. Install System Dependencies
#### Debian/Ubuntu
```bash
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
```
#### Fedora/RHEL
```bash
sudo dnf install webkit2gtk4.0-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel
```
#### Arch Linux
```bash
sudo pacman -S webkit2gtk \
base-devel \
curl \
wget \
file \
openssl \
gtk3 \
libappindicator-gtk3 \
librsvg
```
#### macOS
```bash
xcode-select --install
```
#### Windows
- Install [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)
- Select "Desktop development with C++"
- Select "Windows 10/11 SDK"
- Install [WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)
### 4. Install Project Dependencies
```bash
# Clone the repository (if you haven't already)
cd eve-alpha
# Install npm dependencies
npm install
# Setup environment file
cp .env.example .env
```
### 5. Configure API Keys
Edit `.env` and add your API keys:
```env
VITE_OPENROUTER_API_KEY=sk-or-v1-your-key-here
VITE_ELEVENLABS_API_KEY=your-key-here # Optional
```
Get your API keys:
- **OpenRouter**: https://openrouter.ai/keys (required)
- **ElevenLabs**: https://elevenlabs.io (optional, for TTS)
## Troubleshooting
### Script Fails to Detect Dependencies
If the script doesn't detect installed tools:
1. **Restart your terminal** after installing Node.js or Rust
2. **Source the cargo environment** (Linux/macOS):
```bash
source $HOME/.cargo/env
```
3. **Add to PATH** (Windows): Ensure Node.js and Rust are in your system PATH
### Permission Denied Errors (Linux/macOS)
```bash
# Make script executable
chmod +x setup.sh
# If system package installation fails
sudo ./setup.sh # Not recommended, use sudo only for package installs
```
### npm Install Fails
```bash
# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm cache clean --force
npm install
```
### Rust Compilation Errors (Linux)
Ensure all system dependencies are installed:
```bash
# Check webkit2gtk version
pkg-config --modversion webkit2gtk-4.0
# Should be 2.8.0 or higher
```
### Windows: "Script Cannot Be Loaded" Error
PowerShell execution policy may block the script:
```powershell
# Run as Administrator
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Then run setup script again
.\setup.ps1
```
### WebView2 Not Detected (Windows)
Download and install manually:
https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section
## Verifying Your Setup
After running the setup script, verify everything works:
```bash
# 1. Check all tools are installed
node -v
npm -v
rustc --version
cargo --version
# 2. Start development server
npm run tauri:dev
# 3. If the app window opens and you see the chat interface, you're all set!
```
## Development Workflow
Once setup is complete:
```bash
# Start development with hot-reload
npm run tauri:dev
# Run frontend only (browser)
npm run dev
# Build for production
npm run tauri:build
# Lint code
npm run lint
# Format code
npm run format
```
## Getting Help
If you encounter issues not covered here:
1. Check the [main README](../../README.md)
2. Review [SETUP_COMPLETE.md](./SETUP_COMPLETE.md) for detailed troubleshooting
3. Check [GitHub Issues](https://github.com/your-repo/eve-alpha/issues)
## Next Steps
After successful setup:
1. ✅ Edit `.env` with your API keys
2. ✅ Run `npm run tauri:dev` to start developing
3. ✅ Read the [Development Guide](../CONTRIBUTING.md) (if available)
4. ✅ Check out the [Roadmap](../planning/ROADMAP.md) for planned features
---
**Last Updated**: October 6, 2025
**Supported Platforms**: Linux (Debian/Ubuntu, Fedora, Arch), macOS, Windows 10/11