Plan native macOS menus

This commit is contained in:
Georg Bauer
2026-07-24 13:30:08 +02:00
parent 859eecb459
commit ec77ab94fb

38
PLAN.md
View File

@@ -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