feat(macos): add native desktop controls and hotkey integration

- 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.
This commit is contained in:
dh
2026-08-06 08:18:52 +02:00
parent 5f39923c27
commit 9542c05ea4
20 changed files with 981 additions and 11 deletions
@@ -0,0 +1,40 @@
## ADDED Requirements
### Requirement: Interactive agent uses detected host operating-system context
Meeting Assistant SHALL detect the host operating system when the application starts and SHALL make that immutable runtime context available to the interactive settings/logs assistant.
When the detected host is Windows, the interactive assistant instructions SHALL identify Windows as the runtime platform and SHALL direct the assistant to use Windows-specific commands, paths, services, environment conventions, and desktop concepts instead of macOS concepts.
When the detected host is macOS, the interactive assistant instructions SHALL identify macOS as the runtime platform and SHALL direct the assistant to use macOS-specific commands, POSIX paths, launchd services, environment conventions, and desktop concepts instead of Windows concepts.
Platform-aware instructions SHALL remain present when the interactive assistant uses a configured custom initial prompt.
The instructions SHALL distinguish platform-aware operational guidance from feature availability and SHALL NOT imply that detecting macOS provides Windows-only or otherwise unavailable integrations.
For other detected hosts, Meeting Assistant SHALL identify the platform as unsupported for platform-specific guidance and SHALL direct the assistant to prefer portable tools and concepts rather than assuming Windows or macOS.
#### Scenario: Windows host receives Windows operational guidance
- **GIVEN** Meeting Assistant detected Windows during startup
- **WHEN** it builds the interactive settings/logs assistant instructions
- **THEN** the instructions identify Windows as the runtime platform
- **AND** direct the assistant to use Windows commands and concepts
- **AND** direct the assistant not to substitute macOS commands or concepts
#### Scenario: macOS host receives macOS operational guidance
- **GIVEN** Meeting Assistant detected macOS during startup
- **WHEN** it builds the interactive settings/logs assistant instructions
- **THEN** the instructions identify macOS as the runtime platform
- **AND** direct the assistant to use macOS commands and concepts
- **AND** direct the assistant not to substitute Windows commands or concepts
#### Scenario: Custom prompt retains detected platform context
- **GIVEN** Meeting Assistant detected macOS during startup
- **AND** a custom interactive-assistant initial prompt is configured
- **WHEN** it builds the interactive assistant instructions
- **THEN** the instructions contain both the custom prompt and macOS runtime guidance
#### Scenario: Unsupported host uses neutral guidance
- **GIVEN** Meeting Assistant runs on a host other than Windows or macOS
- **WHEN** it builds the interactive settings/logs assistant instructions
- **THEN** the instructions do not label the host as Windows or macOS
- **AND** direct the assistant to prefer portable tools and concepts