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>
1.8 KiB
1.8 KiB
ADDED Requirements
Requirement: Model Download Progress Display
The sidecar SHALL report Whisper model download progress to enable UI feedback.
Scenario: Emit download start
- WHEN Whisper model download begins
- THEN sidecar SHALL emit JSON to stdout:
{"status": "downloading_model", "model": "<size>", "progress": 0, "total_mb": <size>}
Scenario: Emit download progress
- WHEN download progress updates
- THEN sidecar SHALL emit JSON:
{"status": "downloading_model", "progress": <percent>, "downloaded_mb": <current>, "total_mb": <total>} - AND progress updates SHALL occur at least every 5% or every 5 seconds
Scenario: Emit download complete
- WHEN model download completes
- THEN sidecar SHALL emit JSON:
{"status": "model_downloaded", "model": "<size>"} - AND proceed to model loading
Scenario: Skip download for cached model
- WHEN model already exists in huggingface cache
- THEN sidecar SHALL NOT emit download progress messages
- AND proceed directly to loading
Requirement: Frontend Model Download Progress Display
The Electron frontend SHALL display model download progress to users.
Scenario: Show download progress in transcript panel
- WHEN sidecar emits download progress
- THEN whisper status element SHALL display download percentage and size
- AND format: "Downloading: XX% (YYY MB / ZZZ MB)"
Scenario: Show download complete
- WHEN sidecar emits model_downloaded status
- THEN whisper status element SHALL briefly show "Model downloaded"
- AND transition to loading state
Scenario: Forward progress events via IPC
- WHEN main process receives download progress from sidecar
- THEN it SHALL forward to renderer via
model-download-progressIPC channel