# Change: Add Embedded Backend Packaging for All-in-One Deployment ## Why Currently, deploying Meeting Assistant requires setting up both the Electron client and a separate backend server. For enterprise internal deployment, users want a simpler experience: **double-click the exe and it works** without needing to understand or configure backend services separately. Additionally, when users first run the packaged application, the Whisper model download (~1.5GB) shows only "loading_model" status with no progress indication, causing confusion about whether the download is actually happening. ## What Changes - **New capability: Embedded Backend** - Package FastAPI backend as a sidecar managed by Electron - **Backend sidecar management** - Electron starts/stops backend process automatically - **Health check mechanism** - Wait for backend readiness before loading frontend - **Configuration unification** - All settings (DB, API keys, auth) in single `config.json` - **Backward compatible** - Existing deployment method (separate backend) still works via `backend.embedded: false` flag - **Model download progress** - Show real-time download percentage for Whisper model ## Impact - Affected specs: `embedded-backend` (new), `transcription` (modified) - Affected code: - `backend/run_server.py` (new) - Backend entry point for packaging - `backend/build.py` (new) - PyInstaller build script - `backend/app/config.py` - Support frozen executable paths - `client/src/main.js` - Backend sidecar management - `client/src/preload.js` - Expose backend status API - `client/config.json` - Extended configuration schema - `client/package.json` - Build configuration for backend resources - `sidecar/transcriber.py` - Model download progress reporting - `scripts/build-client.bat` - Integrated build script - `scripts/build-all.ps1` - PowerShell build script