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>
4.9 KiB
4.9 KiB
audio-device-management Specification
Purpose
TBD - created by archiving change add-audio-device-selector. Update Purpose after archive.
Requirements
Requirement: Audio Device Enumeration
The frontend SHALL enumerate and display all available audio input devices.
Scenario: List available devices
- WHEN user opens meeting detail page
- THEN system SHALL enumerate all audio input devices
- AND display them in a dropdown selector
- AND exclude virtual/system devices like "Stereo Mix"
Scenario: Refresh device list
- WHEN user clicks refresh button or device is connected/disconnected
- THEN system SHALL re-enumerate devices
- AND update dropdown options
- AND preserve current selection if still available
Scenario: Device label display
- WHEN devices are listed
- THEN each device SHALL display its friendly name (label)
- AND indicate if it's the system default device
Requirement: Manual Device Selection
The frontend SHALL allow users to manually select their preferred audio input device.
Scenario: Select device from dropdown
- WHEN user selects a device from dropdown
- THEN system SHALL update selected device state
- AND start volume monitoring on new device
- AND save selection to localStorage
Scenario: Load saved preference
- WHEN meeting detail page loads
- THEN system SHALL check localStorage for saved device preference
- AND if saved device is available, auto-select it
- AND if saved device unavailable, fall back to system default
Scenario: Selected device unavailable
- WHEN previously selected device is no longer available
- THEN system SHALL show warning message
- AND fall back to system default device
- AND prompt user to select new device
Requirement: Real-time Volume Indicator
The frontend SHALL display real-time audio input level from the selected microphone.
Scenario: Display volume meter
- WHEN a device is selected
- THEN system SHALL show animated volume meter
- AND update meter at least 10 times per second
- AND display level as percentage (0-100%)
Scenario: Volume meter accuracy
- WHEN user speaks into microphone
- THEN volume meter SHALL reflect actual audio amplitude
- AND peak levels SHALL be visually distinct
Scenario: Muted or silent input
- WHEN no audio input detected for 3 seconds
- THEN volume meter SHALL show minimal/zero level
- AND optionally show "No input detected" hint
Requirement: Audio Test Recording
The frontend SHALL allow users to record a short test audio clip.
Scenario: Start test recording
- WHEN user clicks "Test Recording" button
- THEN system SHALL start recording from selected device
- AND button SHALL change to "Stop" with countdown timer
- AND recording SHALL auto-stop after 5 seconds
Scenario: Stop test recording
- WHEN recording reaches 5 seconds or user clicks stop
- THEN recording SHALL stop
- AND audio blob SHALL be stored in memory
- AND "Play Test" button SHALL become enabled
Scenario: Recording indicator
- WHEN test recording is in progress
- THEN UI SHALL show recording indicator (pulsing dot)
- AND remaining time SHALL be displayed
Requirement: Test Audio Playback
The frontend SHALL allow users to play back their test recording.
Scenario: Play test recording
- WHEN user clicks "Play Test" button
- THEN system SHALL play the recorded audio through default output
- AND button SHALL change to indicate playing state
- AND playback SHALL stop at end of recording
Scenario: No test recording available
- WHEN no test recording has been made
- THEN "Play Test" button SHALL be disabled
- AND tooltip SHALL indicate "Record a test first"
Requirement: Integration with Main Recording
The main recording function SHALL use the user-selected audio device.
Scenario: Use selected device for recording
- WHEN user starts main recording
- THEN system SHALL use the device selected in audio settings panel
- AND if no device selected, use auto-selection logic
Scenario: Device changed during recording
- WHEN user changes device selection while recording
- THEN change SHALL NOT affect current recording
- AND new selection SHALL apply to next recording session
Requirement: Audio Settings Panel UI
The frontend SHALL display audio settings in a collapsible panel.
Scenario: Panel visibility
- WHEN meeting detail page loads
- THEN audio settings panel SHALL be visible but collapsible
- AND panel state (expanded/collapsed) SHALL be saved
Scenario: Panel layout
- WHEN panel is expanded
- THEN it SHALL display:
- Device dropdown selector
- Volume meter visualization
- Test recording button
- Play test button
- Status indicator
Scenario: Compact mode
- WHEN panel is collapsed
- THEN it SHALL show only selected device name and expand button