forked from Manuel/meeting-assistant
- Introduced MacOsDesktopControlManifest to manage desktop control configurations. - Implemented MacOsDesktopControlService to handle the lifecycle of the macOS helper process. - Created MacOsWorkflowRulesEditorWindowService for managing workflow rules through a native window. - Developed a Swift helper for macOS that integrates with AppKit and Carbon for menu-bar controls and global hotkeys. - Added support for recording lifecycle actions via HTTP endpoints, maintaining consistency with existing Windows functionality. - Enhanced user experience by allowing macOS users to start/stop recordings and access settings through a menu-bar interface. - Documented design decisions, implementation evidence, and verification tasks for the new macOS features.
29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Workflow rules and speaker identities can be edited through a tray-launched assistant
|
|
Meeting Assistant SHALL expose desktop controls from the Windows tray icon and the macOS menu bar.
|
|
|
|
The macOS menu-bar control SHALL start with Meeting Assistant, show current recording state, expose each configured launch profile with its configured hotkey, expose stop and abort controls while recording, expose `Open agent`, and expose exit.
|
|
|
|
Selecting `Open agent` on macOS SHALL open a native window titled `Meeting Summary Agent` containing the interactive settings-and-logs chat surface.
|
|
|
|
#### Scenario: macOS menu bar shows idle recording controls
|
|
- **GIVEN** Meeting Assistant is idle on macOS
|
|
- **WHEN** the user opens the menu-bar control
|
|
- **THEN** it shows `Open agent`
|
|
- **AND** shows a start action for every configured launch profile
|
|
- **AND** displays each profile's configured toggle hotkey
|
|
- **AND** shows an exit action
|
|
|
|
#### Scenario: macOS menu bar shows active recording controls
|
|
- **GIVEN** a meeting is recording on macOS
|
|
- **WHEN** the user opens the menu-bar control
|
|
- **THEN** it shows the active recording state
|
|
- **AND** exposes stop and abort actions
|
|
|
|
#### Scenario: macOS menu opens the interactive agent
|
|
- **GIVEN** Meeting Assistant is running on macOS
|
|
- **WHEN** the user selects `Open agent` from the menu-bar control
|
|
- **THEN** a `Meeting Summary Agent` window opens
|
|
- **AND** the user can submit a chat message and receive the interactive agent response
|