14 KiB
ADDED Requirements
Requirement: Active transcription can be paused without ending the meeting
Meeting Assistant SHALL allow transcription for an active meeting recording to be paused and unpaused without stopping the meeting run.
While transcription is paused, Meeting Assistant SHALL keep the recording status active, SHALL preserve the meeting artifacts and run-local speaker context, and SHALL keep the normal finish and cancel/discard controls available.
When transcription is unpaused, Meeting Assistant SHALL resume transcribing newly captured audio through the existing meeting run.
Pausing or unpausing when no active recording exists SHALL leave recording state unchanged.
Scenario: Active transcription is paused and unpaused
- GIVEN a meeting is actively recording
- WHEN the user pauses transcription
- THEN the meeting remains active and reports that transcription is paused
- AND keeps its existing artifacts and speaker context
- WHEN the user unpauses transcription
- THEN newly captured audio is transcribed in the same meeting run
Scenario: Paused meeting can still be finished
- GIVEN an active meeting transcription is paused
- WHEN the user finishes the meeting
- THEN Meeting Assistant follows the normal stop, transcription drain, speaker processing, and summary flow
Scenario: Pause request while idle is harmless
- GIVEN no meeting recording is active
- WHEN transcription pause is requested
- THEN Meeting Assistant remains idle
MODIFIED Requirements
Requirement: Windows taskbar icon controls recording
Meeting Assistant SHALL show a Windows taskbar notification icon when running on Windows.
The taskbar icon SHALL indicate whether the newest meeting process is idle, actively recording, or post-recording processing/summarizing.
When a new meeting is actively recording while an older stopped meeting is still transcribing, recognizing speakers, or summarizing, the taskbar icon SHALL show the new active recording state.
The taskbar icon right-click menu SHALL expose recording controls based on the current state and configured launch profiles.
The taskbar icon right-click menu SHALL expose an Exit action in every recording state.
When Meeting Assistant is idle or only processing older stopped meetings, the menu SHALL allow starting a meeting recording for each configured launch profile.
When a meeting is actively recording, the menu SHALL allow stopping the recording and continuing transcription/summary generation.
During an active recording, the normal stop action SHALL be labeled Finish meeting and SHALL be the only action in a dedicated menu section immediately below the Open agent section.
During an active recording, pause/unpause, microphone selection, cancel/discard, and profile-switch actions SHALL appear in a separate fine-grained controls section below Finish meeting.
When a meeting is actively recording and transcription is running, the menu SHALL expose Pause transcription.
When a meeting is actively recording and transcription is paused, the menu SHALL expose Unpause transcription and SHALL continue exposing Finish meeting.
When a meeting is actively recording, the menu SHALL allow canceling the recording and discarding that run's artifacts.
When a meeting is actively recording, the menu SHALL allow switching to each configured launch profile other than the current active profile.
Selecting Exit while Meeting Assistant is idle SHALL stop the application without an additional confirmation prompt.
Selecting Exit while Meeting Assistant is recording, transcribing, recognizing speakers, or summarizing SHALL show a confirmation dialog before stopping the application.
Scenario: Idle tray menu can start configured profiles
- GIVEN launch profiles
defaultandenglishare configured - AND no meeting recording is active
- WHEN the taskbar menu is opened
- THEN it offers start recording actions for
defaultandenglish
Scenario: Recording tray menu prioritizes finishing the meeting
- GIVEN launch profiles
defaultandenglishare configured - AND a meeting is actively recording with profile
default - WHEN the taskbar menu is opened
- THEN
Finish meetingis the only action in the section immediately belowOpen agent - AND pause, microphone selection, cancel/discard, and switching to
englishappear in a separate following section - AND the menu does not offer switching to
default
Scenario: Tray pause action changes to unpause
- GIVEN a meeting is actively recording with transcription running
- WHEN the taskbar menu is opened
- THEN it offers
Pause transcription - WHEN transcription is paused and the taskbar menu is opened again
- THEN it offers
Unpause transcription - AND still offers
Finish meeting
Scenario: Active recording has priority over older summarizing runs
- GIVEN an older meeting is still summarizing
- WHEN a newer meeting is actively recording
- THEN the taskbar icon indicates recording
Scenario: Tray menu always exposes Exit
- GIVEN Meeting Assistant is running
- WHEN the taskbar menu is opened
- THEN it offers an Exit action
Scenario: Idle Exit stops immediately
- GIVEN no recording, transcription, speaker recognition, or summary work is running
- WHEN the user selects Exit from the taskbar menu
- THEN Meeting Assistant stops the application without an additional confirmation prompt
Scenario: In-progress Exit asks for confirmation
- GIVEN Meeting Assistant is recording, transcribing, recognizing speakers, or summarizing
- WHEN the user selects Exit from the taskbar menu
- THEN Meeting Assistant asks for confirmation before stopping the application
Requirement: Recording inactivity safeguard stops forgotten meetings
Meeting Assistant SHALL track transcript inactivity during an active recording from the later of meeting start, the most recent unpause, or the most recent live transcript segment that contains text.
Meeting Assistant SHALL show a stop prompt when transcript inactivity reaches configured prompt thresholds. The default thresholds SHALL be 2 minutes, 5 minutes, and 10 minutes.
On Windows, the stop prompt SHALL use a native Windows app notification with stop, continue, and pause-transcription action buttons.
On Windows, the stop prompt notification SHALL request reminder-style toast behavior and remain actionable for 1 minute.
The stop prompt SHALL ask whether to stop the meeting and SHALL provide affirmative, negative, and pause-transcription actions.
Showing or ignoring the stop prompt SHALL NOT block later inactivity checks, reminder prompts, or automatic stop.
If the user accepts the stop prompt, Meeting Assistant SHALL stop the recording normally, allowing transcription, speaker recognition, and summary generation to continue as for a normal stop.
If the user selects pause from the stop prompt, Meeting Assistant SHALL pause transcription for that same active meeting without finishing it.
When a new non-empty live transcript segment is written, Meeting Assistant SHALL dismiss all outstanding transcript-inactivity notifications and invalidate their pending actions.
Notification dismissal SHALL NOT block processing the final transcript segments emitted while switching launch profiles. Any deferred dismissal SHALL recheck that its originating run is still the active recording before dismissing notifications.
While transcription is intentionally paused, Meeting Assistant SHALL NOT show transcript-inactivity prompts and SHALL NOT apply the ordinary transcript-inactivity auto-stop threshold.
Meeting Assistant SHALL normally stop a meeting that remains continuously paused for the configured maximum pause duration, defaulting to 4 hours, without first showing a transcript-inactivity notification. This maximum continuous-pause cutoff SHALL remain active when ordinary transcript-inactivity prompting and auto-stop are disabled.
When transcription is unpaused, Meeting Assistant SHALL clear the continuous-pause timer and restart transcript-inactivity timing from the unpause time.
Meeting Assistant SHALL automatically stop the recording normally when transcript inactivity reaches the configured auto-stop threshold, defaulting to 30 minutes.
When the inactivity safeguard stops a recording, Meeting Assistant SHALL infer the meeting end time from the most recent transcript segment timestamp plus configured padding, defaulting to 1 minute. If no transcript segment has arrived, Meeting Assistant SHALL infer the end time from the meeting start time plus the same padding.
When a recording stops normally and its meeting note, transcript, and assistant context contain no user-authored or captured content beyond generated default headings and metadata, Meeting Assistant SHALL delete the run artifacts instead of running summary generation.
Scenario: Inactive recording prompts the user
- GIVEN a recording is active
- AND no transcript text has arrived for the first configured inactivity prompt threshold
- WHEN the inactivity safeguard checks the active recording
- THEN Meeting Assistant prompts the user whether to stop the meeting with a native Windows app notification when running on Windows
- AND the notification offers pause transcription
- AND the notification remains actionable for 1 minute
- AND does not abort or discard meeting artifacts
Scenario: Ignored inactivity prompt does not block auto-stop
- GIVEN a recording is active
- AND the inactivity safeguard prompt was shown
- WHEN the user ignores the prompt until the automatic stop threshold is reached
- THEN Meeting Assistant stops the recording normally without waiting for a prompt response
Scenario: User accepts inactivity stop prompt
- GIVEN a recording is active
- AND the inactivity safeguard prompt is shown
- WHEN the user chooses to stop the meeting
- THEN Meeting Assistant stops the recording normally
- AND continues normal transcription and summary processing
- AND writes the inferred meeting end time to meeting artifacts
Scenario: User pauses from inactivity prompt
- GIVEN a recording is active
- AND the inactivity safeguard prompt is shown
- WHEN the user chooses to pause transcription
- THEN Meeting Assistant dismisses the outstanding inactivity notifications
- AND pauses transcription without finishing the meeting
Scenario: Inactive recording automatically stops
- GIVEN a recording is active
- AND no transcript text has arrived through the configured automatic stop threshold
- WHEN the inactivity safeguard checks the active recording
- THEN Meeting Assistant stops the recording normally without aborting artifacts
- AND writes the inferred meeting end time to meeting artifacts
Scenario: New transcript text resets inactivity prompts
- GIVEN a recording is active
- AND one or more inactivity prompts were shown
- WHEN a new transcript segment with text is written
- AND the segment belongs to that active recording
- THEN Meeting Assistant dismisses every outstanding inactivity notification
- AND invalidates their pending actions
- AND resets the inactivity prompt schedule from that transcript arrival
Scenario: Paused transcription suppresses inactivity safeguard
- GIVEN an active meeting transcription is paused
- WHEN configured transcript-inactivity prompt or automatic-stop thresholds pass before the maximum pause duration
- THEN Meeting Assistant does not show an inactivity prompt
- AND does not stop the meeting for transcript inactivity
- WHEN transcription is unpaused
- THEN inactivity timing restarts from the unpause time
Scenario: Continuously paused meeting is stopped after four hours
- GIVEN an active meeting transcription is paused continuously
- WHEN the configured maximum pause duration of 4 hours is reached
- THEN Meeting Assistant does not show a transcript-inactivity notification
- AND stops the meeting normally
Scenario: Maximum pause remains active when transcript-inactivity handling is disabled
- GIVEN ordinary transcript-inactivity prompting and auto-stop are disabled
- AND an active meeting transcription is paused continuously
- WHEN the configured maximum pause duration is reached
- THEN Meeting Assistant stops the meeting normally without an inactivity notification
Scenario: An older run cannot dismiss a current run's notification
- GIVEN an older stopped meeting is still draining transcription
- AND a newer active meeting has an outstanding transcript-inactivity notification
- WHEN the older meeting writes a late transcript segment
- THEN the newer meeting's notification and pending actions remain active
Scenario: Final transcript during a profile switch dismisses notifications without blocking the switch
- GIVEN a meeting is actively recording with either the
defaultorenglishprofile - WHEN the user switches to the other profile
- AND the old recognizer emits a final non-empty transcript segment while draining
- THEN Meeting Assistant writes that final segment before the profile-switch marker
- AND completes the switch and transcribes buffered audio in the same meeting
- AND dismisses the originating active run's outstanding inactivity notifications
- AND subsequent profile switches and normal meeting completion remain available
Scenario: Empty stopped recording is cleaned up
- GIVEN a recording is active
- AND the meeting note, transcript, and assistant context only contain generated default content
- WHEN the recording stops normally
- THEN Meeting Assistant deletes the run artifacts
- AND does not run summary generation