Plan native macOS menus
This commit is contained in:
38
PLAN.md
38
PLAN.md
@@ -342,6 +342,44 @@ visual placeholders with no message or agent runtime behind them.
|
||||
6. Port context compaction and system-prompt reinjection after ordinary
|
||||
multi-turn operation is correct.
|
||||
|
||||
### Native macOS menus (required with chat)
|
||||
|
||||
The application must install and maintain a complete native macOS menu bar;
|
||||
the application-name menu alone is not sufficient. Use platform menu roles,
|
||||
ordering, selectors, and standard key equivalents rather than drawing menus
|
||||
inside the Iced window.
|
||||
|
||||
- Provide the standard **Application**, **File**, **Edit**, **View**,
|
||||
**Window**, and **Help** menus. Include the normal macOS Application actions
|
||||
(About, Settings, Services, Hide, Hide Others, Show All, and Quit) and Window
|
||||
actions (Minimize, Zoom, Bring All to Front) with native behavior.
|
||||
- Make File actions operate on real application concepts: New Session, Add/Open
|
||||
Project, and Close Window. Make View actions cover actual available views,
|
||||
including sidebar visibility and Enter Full Screen. Help opens the local help
|
||||
or documentation surface. Do not add permanently inert placeholder items.
|
||||
- The Edit menu is part of the chat acceptance criteria. Undo, Redo, Cut, Copy,
|
||||
Paste, Paste and Match Style where supported, Delete, and Select All must act
|
||||
on the current first responder. They must work in the chat composer and every
|
||||
other editable text field; Copy and Select All must also work for selectable
|
||||
transcript text.
|
||||
- Prefer native first-responder selectors for native controls. Where an Iced
|
||||
widget owns focus, bridge the same menu command into that focused widget so
|
||||
menu clicks and `Command-Z`, `Shift-Command-Z`, `Command-X`, `Command-C`,
|
||||
`Command-V`, and `Command-A` behave identically.
|
||||
- Validate menu enabled state whenever focus or application state changes:
|
||||
editing commands reflect the focused selection/clipboard and session/project
|
||||
commands reflect whether their action is currently possible. Menu actions
|
||||
must use the same application messages as toolbar/sidebar actions instead of
|
||||
duplicating business logic.
|
||||
- Preserve conventional macOS labels, grouping, keyboard shortcuts, and
|
||||
accessibility metadata. Keep platform-specific menu integration behind the
|
||||
macOS application shell so the chat and session core remain platform-neutral.
|
||||
|
||||
Exit criterion: with the composer focused, every standard Edit command works
|
||||
from both the menu and its keyboard shortcut, including undo/redo across
|
||||
multiple edits; transcript text can be copied; and Application, File, View,
|
||||
Window, and Help expose functional, correctly enabled native actions.
|
||||
|
||||
### Dev Brain — Obsidian knowledge and memory
|
||||
|
||||
- Add an optional Dev Brain setting in Preferences. Use the native macOS folder
|
||||
|
||||
Reference in New Issue
Block a user