Files
Meeting_Assistant/openspec/changes/archive/2025-12-22-add-embedded-backend-packaging/tasks.md
egg e7a06e2b8f chore: Archive all pending OpenSpec proposals
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>
2025-12-22 08:44:04 +08:00

1.9 KiB

Tasks: Add Embedded Backend Packaging

1. Backend Packaging Infrastructure

  • 1.1 Create backend/run_server.py - Entry point that loads config and starts uvicorn
  • 1.2 Create backend/build.py - PyInstaller build script with hidden imports
  • 1.3 Modify backend/app/config.py - Support frozen executable path detection
  • 1.4 Test backend executable runs standalone on Windows

2. Electron Backend Sidecar Management

  • 2.1 Add backendProcess and backendReady state variables in main.js
  • 2.2 Implement startBackendSidecar() function
  • 2.3 Implement waitForBackendReady() health check polling
  • 2.4 Modify app.whenReady() to start backend before window
  • 2.5 Modify window close handler to terminate backend process
  • 2.6 Add get-backend-status IPC handler

3. Configuration Schema Extension

  • 3.1 Extend client/config.json with backend section
  • 3.2 Modify client/src/preload.js to expose backend status API
  • 3.3 Add configuration loading in backend entry point
  • 3.4 Document configuration options in DEPLOYMENT.md

4. Build Script Integration

  • 4.1 Modify scripts/build-client.bat to build backend sidecar
  • 4.2 Modify scripts/build-all.ps1 to build backend sidecar
  • 4.3 Update client/package.json extraResources for backend
  • 4.4 Add --embedded-backend flag to build scripts

5. Model Download Progress Display

  • 5.1 Modify sidecar/transcriber.py to emit download progress JSON
  • 5.2 Add progress event forwarding in main.js
  • 5.3 Expose onModelDownloadProgress in preload.js
  • 5.4 Update meeting-detail.html to display download progress

6. Testing and Documentation

  • 6.1 Test embedded mode on clean Windows machine
  • 6.2 Test backward compatibility (embedded: false)
  • 6.3 Test model download progress display
  • 6.4 Update DEPLOYMENT.md with all-in-one deployment instructions