Public Access
feat: prioritize finish meeting tray action
PR and Push Build/Test / build-and-test (push) Successful in 11m8s
PR and Push Build/Test / build-and-test (push) Successful in 11m8s
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
## Context
|
||||
|
||||
The tray-menu builder currently returns a flat list of semantic actions, while the Windows renderer infers separators from item indexes and the Exit action. During an active recording, the normal stop action is added after the microphone submenu and uses a long implementation-oriented label. This makes the primary meeting-completion action look equivalent to cancel, profile switching, and device selection.
|
||||
|
||||
## Goals / Non-Goals
|
||||
|
||||
**Goals:**
|
||||
|
||||
- Give normal meeting completion the concise label `Finish meeting`.
|
||||
- Make that action the only item in the section immediately below `Open agent` while recording.
|
||||
- Keep fine-grained recording controls in a distinct following section.
|
||||
- Make section boundaries observable in platform-independent menu behavior tests.
|
||||
|
||||
**Non-Goals:**
|
||||
|
||||
- Change what normal stop, abort, profile switching, or microphone selection does.
|
||||
- Change idle-menu actions, hotkeys, endpoints, or recording state transitions.
|
||||
- Add icons, confirmation prompts, or nested submenus.
|
||||
|
||||
## Decisions
|
||||
|
||||
### Represent section starts in the menu model
|
||||
|
||||
Add a section-start flag to `MeetingTaskbarMenuItem`. The Windows renderer will insert a separator before items carrying the flag instead of deriving layout from array indexes and action types.
|
||||
|
||||
This keeps layout intent in the platform-independent builder where behavior tests can observe it. Keeping another renderer-only special case was rejected because it would leave the requested prominence untestable without Windows UI automation.
|
||||
|
||||
### Build prioritized and fine-grained controls as separate groups
|
||||
|
||||
While recording, the builder will add `Open agent`, then `Finish meeting` as a new section, then collect microphone, cancel/discard, and profile-switch actions into a fine-grained group whose first item starts another section. Exit remains the final section.
|
||||
|
||||
The action continues to use the existing normal-stop command so transcription, speaker processing, OCR, and summarization semantics do not change.
|
||||
|
||||
## Risks / Trade-offs
|
||||
|
||||
- **A section flag could produce adjacent separators if assigned carelessly** → The builder marks only the first item of each non-empty group, and the renderer follows those explicit starts.
|
||||
- **Menu ordering changes while recording** → Limit reordering to the active-recording state; idle and processing actions retain their existing relative order.
|
||||
|
||||
## Migration Plan
|
||||
|
||||
No configuration or data migration is required. Deploying the updated executable changes only tray-menu presentation. Rollback restores the previous label and grouping.
|
||||
|
||||
## Open Questions
|
||||
|
||||
None.
|
||||
Reference in New Issue
Block a user