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,13 @@
## Why
Meeting summaries are useful as full notes, but downstream views and file lists also need a very short human-readable blurb without parsing the full markdown body.
## What Changes
- Require the summary agent to provide a one-line summary when calling `write_summary`.
- Reject one-line summaries containing line breaks.
- Store the one-line summary in summary note frontmatter.
- Update default summary-agent instructions to keep the one-line summary very short and concise.
## Impact
- Changes the `write_summary` tool signature.
- Adds summary frontmatter field `oneliner`.
- Adds focused tests for validation, frontmatter output, and instructions.
@@ -0,0 +1,18 @@
## ADDED Requirements
### Requirement: Summary note includes a one-line blurb
The `write_summary` tool SHALL require a one-line summary parameter in addition to the markdown summary body.
Meeting Assistant SHALL reject `write_summary` calls when the one-line summary contains line breaks.
Meeting Assistant SHALL write the one-line summary into summary note frontmatter as `oneliner`.
The summary-agent instructions SHALL tell the agent to keep the one-line summary very short, blurb-like, and concise, with complete sentences not required.
#### Scenario: Summary one-liner is written to frontmatter
- **WHEN** the summary agent calls `write_summary` with markdown content and one-line summary `Architecture risks and next steps`
- **THEN** Meeting Assistant writes `oneliner: Architecture risks and next steps` to the summary note frontmatter
#### Scenario: Multiline one-liner is rejected
- **WHEN** the summary agent calls `write_summary` with a one-line summary containing a line break
- **THEN** Meeting Assistant refuses the write
- **AND** does not mark the summary as written
@@ -0,0 +1,13 @@
## 1. Specification
- [x] Add summary one-liner requirements and scenarios.
## 2. Behavior
- [x] Require `oneliner` in the `write_summary` tool signature.
- [x] Validate `oneliner` does not contain line breaks.
- [x] Write `oneliner` to summary note frontmatter.
- [x] Instruct the summary agent to keep the one-liner very short.
## 3. Verification
- [x] Add focused behavior tests.
- [x] Run relevant tests.
- [x] Validate OpenSpec change.
@@ -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.