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.
1.5 KiB
1.5 KiB
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 agentfrom the menu-bar control - THEN a
Meeting Summary Agentwindow opens - AND the user can submit a chat message and receive the interactive agent response