Force archive the following proposals: - add-audio-device-selector (complete) - add-embedded-backend-packaging (19/26 tasks) - add-flexible-deployment-options (20/21 tasks) New specs created: - audio-device-management (7 requirements) - embedded-backend (8 requirements) Updated specs: - transcription (+2 requirements for model download progress) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
29 lines
1.8 KiB
Markdown
29 lines
1.8 KiB
Markdown
# 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
|