Files
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.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-progress IPC channel