Add taskbar controls and summary oneliner

This commit is contained in:
2026-05-27 23:31:40 +02:00
parent 7777b349a5
commit 71f1e6a0b8
22 changed files with 720 additions and 9 deletions
@@ -0,0 +1,17 @@
## Why
Meeting Assistant currently exposes recording controls through hotkeys and HTTP endpoints, but there is no persistent Windows taskbar/tray affordance showing what the assistant is doing.
## What Changes
- Add a Windows taskbar notification icon for Meeting Assistant.
- Show idle, recording, or summarizing/processing state through the icon and tooltip.
- Prioritize the newest active recording over older stopped runs that may still be summarizing.
- Add a right-click menu with state-aware recording controls:
- start meeting recording per configured launch profile
- stop active recording and continue transcription/summary
- cancel active recording and discard artifacts
- switch the active recording to another configured launch profile
## Impact
- Adds a small Windows-only hosted UI service.
- Extends recording status with state/profile information needed by the tray surface.
- Adds focused tests for tray state/menu behavior and launch profile enumeration.
@@ -0,0 +1,36 @@
## ADDED 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.
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.
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.
#### Scenario: Idle tray menu can start configured profiles
- **GIVEN** launch profiles `default` and `english` are configured
- **AND** no meeting recording is active
- **WHEN** the taskbar menu is opened
- **THEN** it offers start recording actions for `default` and `english`
#### Scenario: Recording tray menu exposes stop, cancel, and profile switches
- **GIVEN** launch profiles `default` and `english` are configured
- **AND** a meeting is actively recording with profile `default`
- **WHEN** the taskbar menu is opened
- **THEN** it offers stop and cancel actions
- **AND** it offers switching to `english`
- **AND** it does not offer switching to `default`
#### 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
@@ -0,0 +1,13 @@
## 1. Specification
- [x] Add taskbar icon requirements and scenarios.
## 2. Behavior
- [x] Expose enough recording status for idle/recording/summarizing and active profile display.
- [x] Enumerate configured launch profiles for UI controls.
- [x] Build state-aware tray menu model.
- [x] Add Windows taskbar/tray hosted service with state icon and right-click commands.
## 3. Verification
- [x] Add focused behavior tests for status/menu/profile behavior.
- [x] Run relevant tests.
- [x] Validate OpenSpec change.