Public Access
Add inactivity safeguard and speaker diagnostics
PR and Push Build/Test / build-and-test (push) Failing after 8m31s
PR and Push Build/Test / build-and-test (push) Failing after 8m31s
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# Add Recording Inactivity Safeguard
|
||||
|
||||
## Why
|
||||
Meeting recordings can be left running after a conversation has effectively ended. The app should protect against forgotten active recordings without treating them as aborted meetings.
|
||||
|
||||
## What
|
||||
- Track transcript inactivity during active recordings.
|
||||
- Prompt the user to stop at configurable inactivity thresholds.
|
||||
- Automatically stop the recording after a longer configurable inactivity threshold.
|
||||
- When the safeguard stops a recording, process it normally and infer the meeting end time from the last transcript timestamp plus configurable padding.
|
||||
|
||||
## Impact
|
||||
- Adds recording configuration for inactivity prompts and automatic stop.
|
||||
- Adds a Windows prompt surface for the safeguard.
|
||||
- Updates recording coordinator behavior and tests.
|
||||
@@ -0,0 +1,52 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Recording inactivity safeguard stops forgotten meetings
|
||||
Meeting Assistant SHALL track transcript inactivity during an active recording from the later of meeting start 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 affirmative and negative action buttons.
|
||||
|
||||
The stop prompt SHALL ask whether to stop the meeting and SHALL provide affirmative and negative 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.
|
||||
|
||||
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.
|
||||
|
||||
#### 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** 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: 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** the first inactivity prompt was shown
|
||||
- **WHEN** a new transcript segment with text arrives
|
||||
- **THEN** Meeting Assistant resets the inactivity prompt schedule from that transcript arrival
|
||||
@@ -0,0 +1,9 @@
|
||||
## Implementation
|
||||
- [x] Add inactivity safeguard configuration.
|
||||
- [x] Add prompt service abstraction with Windows and no-op implementations.
|
||||
- [x] Use native Windows app notifications with action buttons for Windows prompts.
|
||||
- [x] Track last text transcript arrival and last transcript timestamp on active recording runs.
|
||||
- [x] Prompt at configured inactivity thresholds and auto-stop at the configured threshold.
|
||||
- [x] Use inferred end time for safeguard-triggered normal stops.
|
||||
- [x] Add focused behavior tests.
|
||||
- [x] Validate with `dotnet test MeetingAssistant.slnx` and `openspec validate add-recording-inactivity-safeguard --strict`.
|
||||
Reference in New Issue
Block a user