Public Access
Add taskbar controls and summary oneliner
This commit is contained in:
@@ -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.
|
||||
+18
@@ -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.
|
||||
@@ -141,3 +141,39 @@ When switching profiles during an active meeting, Meeting Assistant SHALL clear
|
||||
- **WHEN** Meeting Assistant switches to another launch profile
|
||||
- **THEN** already-written transcript text keeps the named speaker
|
||||
- **AND** later transcript segments from the new pipeline do not reuse the old backend speaker label mapping
|
||||
|
||||
### 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
|
||||
|
||||
@@ -258,3 +258,21 @@ When no bound projects have `AGENTS.md`, Meeting Assistant SHALL not append the
|
||||
- **AND** the configured project folder does not contain `AGENTS.md`
|
||||
- **WHEN** the summary agent is created
|
||||
- **THEN** no empty project instruction entry is appended for `Alpha`
|
||||
|
||||
### 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
|
||||
|
||||
Reference in New Issue
Block a user